From 9f234f05b6ddd369d36fd841d69e52554c11a8ec Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Mon, 12 Jun 2023 06:45:55 +1000 Subject: [PATCH 001/267] Test2 --- Shared_Includes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Shared_Includes b/Shared_Includes index 66d8b07..917efe0 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 66d8b070eafa4ef347e46889999d330eb9835b51 +Subproject commit 917efe02de8d5f9d4c4f2ea280602872c877e395 From 2c91a523fa44dce4e81c537307fcdae7edaf16eb Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Mon, 12 Jun 2023 06:53:52 +1000 Subject: [PATCH 002/267] test666 --- Shared_Includes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Shared_Includes b/Shared_Includes index 917efe0..6e27011 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 917efe02de8d5f9d4c4f2ea280602872c877e395 +Subproject commit 6e27011b6259b0256ce65d91a53ef1185223eafa From 6a170dff30c6c07336b588b42870a121bdc6b0cb Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Tue, 20 Jun 2023 01:27:50 +1000 Subject: [PATCH 003/267] ZX-EXP to BIOS adaptation --- Shared_Includes | 2 +- src/bios/BIOS.asm | 3 + src/bios/Test/IDE_BIOS.as | 346 --- src/bios/backup/EXP.as | 2252 ----------------- src/bios/backup/EXP_FN.as | 841 ------ src/bios/backup/EXP_HDD.as | 824 ------ src/bios/backup/EXTENDED.as | 474 ---- src/bios/backup/ROM.as | 135 - src/bios/exp/DCP.ASM | 283 +-- src/bios/exp/EXP.asm | 312 +-- src/bios/exp/EXTENDED/HDD_DRIVER_6.asm | 2 +- src/bios/exp/EXTENDED/RAM_DISK_DRIVER_1.asm | 4 +- src/bios/exp/FUNC_SERVICE.asm | 4 +- src/bios/exp/ZX_MENU.ASM | 24 +- src/bios/exp/ZX_MODE.ASM | 22 +- src/bios/old_files/DCP_PAGE.bin | Bin 16384 -> 0 bytes src/bios/old_files/EXP_DCP.LZ | Bin 5108 -> 0 bytes src/bios/old_files/EXP_DCP2.asm | 460 ---- src/bios/old_files/EXP_DCP_GENERATOR.ASM | 9 - .../old_files/EXP_DCP_TABLE_GENERATED.ASM | 639 ----- src/bios/old_files/EXP_DCP_UNPACKER.asm | 110 - src/bios/old_files/FONT.FNT | Bin 2048 -> 0 bytes src/bios/old_files/SP_EXP2_dasm.asm | 565 ----- src/bios/rom/ROM.asm | 407 ++- src/bios/rom/SETUP/KEY.asm | 2 +- src/bios/rom/SETUP/MAIN.asm | 94 +- src/bios/rom/SETUP/SETTINGS.asm | 26 +- src/bios/rom/SETUP/VIDEO_IO.asm | 42 +- src/bios/shared/CompMacro.asm | 31 +- src/bios/shared/DEFINES.INC | 2 +- 30 files changed, 710 insertions(+), 7205 deletions(-) delete mode 100644 src/bios/Test/IDE_BIOS.as delete mode 100644 src/bios/backup/EXP.as delete mode 100644 src/bios/backup/EXP_FN.as delete mode 100644 src/bios/backup/EXP_HDD.as delete mode 100644 src/bios/backup/EXTENDED.as delete mode 100644 src/bios/backup/ROM.as delete mode 100644 src/bios/old_files/DCP_PAGE.bin delete mode 100644 src/bios/old_files/EXP_DCP.LZ delete mode 100644 src/bios/old_files/EXP_DCP2.asm delete mode 100644 src/bios/old_files/EXP_DCP_GENERATOR.ASM delete mode 100644 src/bios/old_files/EXP_DCP_TABLE_GENERATED.ASM delete mode 100644 src/bios/old_files/EXP_DCP_UNPACKER.asm delete mode 100644 src/bios/old_files/FONT.FNT delete mode 100644 src/bios/old_files/SP_EXP2_dasm.asm diff --git a/Shared_Includes b/Shared_Includes index 6e27011..80b60f7 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 6e27011b6259b0256ce65d91a53ef1185223eafa +Subproject commit 80b60f7294ce3eee958a0c4e9a6f29577cee496f diff --git a/src/bios/BIOS.asm b/src/bios/BIOS.asm index 6f9bcfc..0563473 100644 --- a/src/bios/BIOS.asm +++ b/src/bios/BIOS.asm @@ -67,6 +67,7 @@ ;-----------------[EXP]----------------- MMU 0 e, 8 ; страница 8 в банку 0 и проверка на границы ORG COMPILE_ADDR.EXP + DEFINE+ IsInBIOS 1 OUTPUT 'Build/Bin/EXP.BIN' ShowInfo 'EXP block Start', 0 ; !!!!! test INCLUDE 'src/bios/EXP/EXP.asm' @@ -80,11 +81,13 @@ ;-----------------[ROM]----------------- MMU 0 e, 0 ; страница 0 в банку 0 и проверка на границы. ORG ROM_MAP.ROM + DEFINE+ IsInBIOS 0 OUTPUT 'Build/Bin/ROM.BIN' ShowInfo 'ROM block Start', 0 ; !!!!! test INCLUDE 'src/bios/ROM/ROM.asm' ShowInfo 'ROM block End', 0 ; !!!!! test OUTEND + UNDEFINE IsInBIOS ;--------------------------------------- ; diff --git a/src/bios/Test/IDE_BIOS.as b/src/bios/Test/IDE_BIOS.as deleted file mode 100644 index c972595..0000000 --- a/src/bios/Test/IDE_BIOS.as +++ /dev/null @@ -1,346 +0,0 @@ - -;======================================================== -;55H READH LOAD SECTORS -;56H WRITEH SAVE SECTORS -;57H VERIFYH VERIFY SECTORS - -Y_PORT EQU 089H -;Write -HDW_COM EQU 4153H ;1F7H Command -HDW_DRV EQU 4152H ;1F6H Drive Control - -HDW_CLH EQU 0155H ;1F5H Cylinder High -HDW_CLL EQU 0154H ;1F4H Cylinder Low -HDW_SEC EQU 0153H ;1F3H Sector -HDW_CNT EQU 0152H ;1F2H Counter -HDW_ERR EQU 0151H ;1F1H Error -HDW_DAT EQU 0150H ;1F0H Data -;Read -HDR_CTL EQU 4053H ;1F7H Status (Control) -HDR_DRV EQU 4052H ;1F6H Drive Control - -HDR_CLH EQU 0055H ;1F5H Cylinder High -HDR_CLL EQU 0054H ;1F4H Cylinder Low -HDR_SEC EQU 0053H ;1F3H Sector -HDR_CNT EQU 0052H ;1F2H Counter -HDR_ERR EQU 0051H ;1F1H Error -HDR_DAT EQU 0050H ;1F0H Data - -BSY EQU 7 -RDY EQU 6 -DRQ EQU 3 -ERR EQU 0 - -;EQU FOR IY+ -DRVHD_H EQU 0 -SC_PT_H EQU 1 -HEADS_H EQU 2 -CYL_L_H EQU 3 -CYL_H_H EQU 4 -SPCLL_H EQU 5 -SPCLH_H EQU 6 - -IDE0 EQU 0C1C0H -IDE1 EQU 0C1C8H - -;IDE0 DEFB #FF ;DRIVE/HEAD REGISTER ;00 -; DEFB #FF ;SECTORS PER TRACK ;01 -; DEFB #FF ;HEADS ;02 -; DEFB #FF ;CYLINDERS LOW ;03 -; DEFB #FF ;CYLINDERS HIGH ;04 -; DEFB #FF ;SECTOR PER CYLINDER LOW ;05 -; DEFB #FF ;SECTOR PER CYLINDER HIGH ;06 -; DEFB #FF ;RESERVED ;07 - -;IDE1 DEFB #FF ;DRIVE/HEAD REGISTER ;00 -; DEFB #FF ;SECTORS PER TRACK ;01 -; DEFB #FF ;HEADS ;02 -; DEFB #FF ;CYLINDERS LOW ;03 -; DEFB #FF ;CYLINDERS HIGH ;04 -; DEFB #FF ;SECTOR PER CYLINDER LOW ;05 -; DEFB #FF ;SECTOR PER CYLINDER HIGH ;06 -; DEFB #FF ;RESERVED ;07 - -;HL:IX - SECTOR -; DE - ADDRESS -; B - SECTORS - -;READ SECTOR(S) -READH: PUSH IY - EXX - LD C,Y_PORT - IN B,(C) - PUSH BC - LD E,0C0H - OUT (C),E - EXX - CALL RDS000 - EXX - POP BC - OUT (C),B - EXX - POP IY - RET NC - LD A,4 ;NOT READY - RET - -;READ SECTOR(S) -RDS000: AND 1 - LD IY,IDE0 - JR Z,RDS001 - LD IY,IDE1 -RDS001: EXX - LD DE,0C040H - LD BC,HDR_CTL - CALL WAITPRT - EXX - RET C - PUSH DE - CALL PRESET - POP HL - LD BC,HDW_COM - LD A,020H ;READ WITH RETRY - OUT (C),A -;SAVE HL! -RDS002: EXX - LD DE,08908H ;WAIT BUSY=0 & DRQ=1 & ERR=0 - LD BC,HDR_CTL - CALL WAITPRT - EXX - RET C - LD BC,HDR_DAT - INIR - INIR -; - LD A,H - OR L - JR NZ,W44 - LD HL,0C000H -W44 -; - LD BC,HDR_CTL - IN A,(C) - BIT DRQ,A - JR NZ,RDS002 - XOR A - RET - -;HL:IX - SECTOR -; DE - ADDRESS -; B - SECTORS - -;WRITE SECTOR(S) -WRITEH: PUSH IY - EXX - LD C,Y_PORT - IN B,(C) - PUSH BC - LD E,0C0H - OUT (C),E - EXX - CALL WRS000 - EXX - POP BC - OUT (C),B - EXX - POP IY - RET NC - LD A,4 ;NOT READY - RET - -;WRITE SECTOR(S) -WRS000: AND 1 - LD IY,IDE0 - JR Z,WRS001 - LD IY,IDE1 -WRS001: EXX - LD DE,0C040H - LD BC,HDR_CTL - CALL WAITPRT - EXX - RET C - PUSH DE - CALL PRESET - POP HL - LD BC,HDW_COM - LD A,030H ;WRITE WITH RETRY - OUT (C),A -;SAVE HL! -WRS002: EXX - LD DE,08908H ;WAIT BUSY=0 & DRQ=1 & ERR=0 - LD BC,HDR_CTL - CALL WAITPRT - EXX - RET C - LD BC,HDW_DAT - OTIR - OTIR -; - LD A,H - OR L - JR NZ,W33 - LD HL,0C000H -W33: -; - LD BC,HDR_CTL - IN A,(C) - BIT DRQ,A - JR NZ,WRS002 - XOR A - RET - -;HL:IX - SECTOR -; B - SECTORS - -;VERIFY SECTOR(S) -VERIFYH: - PUSH IY - EXX - LD C,Y_PORT - IN B,(C) - PUSH BC - LD E,0C0H - OUT (C),E - EXX - CALL VRS000 - EXX - POP BC - OUT (C),B - EXX - POP IY - RET NC - LD A,4 ;NOT READY - RET - -;VERIFY SECTOR(S) -VRS000: AND 1 - LD IY,IDE0 - JR Z,VRS001 - LD IY,IDE1 -VRS001: EXX - LD DE,0C040H - LD BC,HDR_CTL - CALL WAITPRT - EXX - RET C - PUSH DE - CALL PRESET - POP HL - LD BC,HDW_COM - LD A,040H ;VERIFY WITH RETRY - OUT (C),A -VRS002: LD BC,HDR_CTL - IN A,(C) - BIT ERR,A - JR Z,VRS003 - SCF - RET -VRS003: LD DE,08100H ;WAIT BUSY=0 & ERR=0 - LD BC,HDR_CTL - CALL WAITPRT - RET C - XOR A - RET - -; HL:IX - LBA SECTOR -; B - SECTOR COUNTER - -PRESET: LD A,B - LD BC,HDW_CNT - OUT (C),A - IN A,(0E2H) - EX AF,AF' - LD A,0FEH - OUT (0E2H),A - LD A,(IY+DRVHD_H) - LD BC,HDW_DRV - OUT (C),A - BIT 6,A - LD E,LX - LD D,HX - CALL Z,LBA_CHS - LD BC,HDW_SEC - OUT (C),E ;LBA 0..7 - LD BC,HDW_CLL - OUT (C),D ;LBA 8..15 - LD BC,HDW_CLH - OUT (C),L ;LBA 16..23 - LD BC,HDW_DRV - DEC B - IN A,(C) - AND 0F0H - OR H ;LBA 24..27 - INC B - OUT (C),A - EX AF,AF' - OUT (0E2H),A - AND A - RET - -; HL:DE - SECTOR OFFSET - -LBA_CHS: - LD C,(IY+SPCLL_H) - LD B,(IY+SPCLH_H) -; HL:DE / BC => DE:IX HL-OSTATOK -DIV32X: LD HX,D - LD LX,E - EX DE,HL - LD HL,0 - LD A,020H -DIV011: ADD IX,IX - EX DE,HL - ADC HL,HL - EX DE,HL - ADC HL,HL - SBC HL,BC - JR NC,DIV012 - ADD HL,BC - DEC A - JR NZ,DIV011 - JR DIV014 -DIV012: INC IX - DEC A - JR NZ,DIV011 -DIV014: LD E,(IY+SC_PT_H) - LD D,0 - XOR A -CHS005: INC A - SBC HL,DE - JR NC,CHS005 - ADD HL,DE - DEC A - LD H,A - LD E,L - INC E - LD D,LX - LD A,HX - LD L,A - RET - -; D - MASK -; E - PATTERN -; BC - PORT - -WAITPRT: - LD HL,0000H -WAITP0: IN A,(C) - CP 0FFH - JR Z,WAITP1 - AND D - CP E - JR NZ,WAITP2 - AND A - RET - -WAITP2: DEC HL - LD A,L - OR H - JP NZ,WAITP0 -WAITP1: SCF - RET - -;======================================================= - - - diff --git a/src/bios/backup/EXP.as b/src/bios/backup/EXP.as deleted file mode 100644 index 8e990b8..0000000 --- a/src/bios/backup/EXP.as +++ /dev/null @@ -1,2252 +0,0 @@ - -; -;************************************************************* -; -; EXPANSION VER 3.00 (C) Peters Plus Ltd. -; -;************************************************************* - -;*************************************** -; DEVICE ZXSPECTRUM4096 ; модель с 4 метрами памяти -; MMU 0 e, 0 ; нулевая страница в банку 0 и проверка на границы -; OUTPUT './Build/EXP.BIN' - -;*************************************** - -; ORG 0 -; DISP 0 - -;SPRIN2 EQU 2 ; 1 - включение Sprinter-1 первой прошивкой -; 2 - включение Sprinter-2 первой прошивкой - -; INCLUDE '../shared/SPRINT00.asm' ; константы, макросы.. -; INCLUDE 'EXP_VERSION.inc' - -;KEMPSTON.JOY_DOS EQU 0FFh - -;*************************************** -;*********** BEGIN EXPANSION *********** -;*************************************** -;A_0000: ; Вход по RESET -EXP_START: - JP GLOBAL_RESET -; DB 0,0 - -;--------------------------------------- -ROM_NUMBER: -.part1: DW MotherBoardID ; MotherBoardID -.part2: DB 0 -;--------------------------------------- - -;--------------------------------------- -; BoardID: -; .start: WORD BoardID_start ; BoardID_start -; .end: WORD BoardID_end ; BoardID_end -;--------------------------------------- - -;======================================= - BLOCK 8-$,0 ; first on/off EXPANSION -;программа для вызова BIOS через RST8 из RAM0 -; -EXP_FNS_2_RET: - PUSH AF - LD A,ROM.EXT - OUT (SYS_PORT.OFF),A - POP AF - JR RST_18_1 -;======================================= - -;======================================= - BLOCK #10-$,0 ; DSS ??? -RST_10: -; JR RST10 -;======================================= - -;======================================= - BLOCK #18-$,0 -; RST18h - MAIN BIOS functions -; - JP EXP_FNS_RST18 ; !TEST new_api -RST_18_1: - CALL EXP_FNS_RST18 ; !TEST new_api - JR EXP_FNS_2_RET - -;======================================= - -;======================================= - BLOCK #20-$,0 -RST_20: -;======================================= - -;======================================= - BLOCK #28-$,0 -RST_28: -;======================================= - -;======================================= - BLOCK #30-$,0 -RST_30: -;======================================= - -;======================================= - BLOCK #38-$,0 -; INTERUPT Point -; -RST38: - EI - RETI - -;RST10: -; CALL_48 10h -; RET -;======================================= - -;======================================= - _mInfoBLOCK #66-$,0 - -NMI_Point: - RETN ; резерв 3 байта для команды JP - NOP - -;======================================= - -;SET_BIOS_TO_RAM: ; программа работает на адресе 0C000h -; -; LD SP,0C0C0H -; LD A,0E0H -; LD C,PAGE3 -; IN B,(C) -; CALL SET_ROM_PAGES+0C000H -; JP NO_SUMX_EQ - -;********************************** - -;BEEP: -; PUSH HL -; PUSH DE -; PUSH BC -; PUSH AF -; PUSH IX -; -; LD HL,BEEP_RET -; PUSH HL -; LD HL,SW_ROM -; PUSH HL -; LD HL,03B5h -; PUSH HL -; LD HL,200 -; LD D,H -; LD E,5 -; JP SW_ROM -;BEEP_RET: -; -; POP IX -; POP AF -; POP BC -; POP DE -; POP HL -; RET - -;======================================= - _mInfoALIGN #10,0 -;TABLE_X EQU #A0 ; any adress < #C0 with mask %xxxx0000 -; BLOCK TABLE_X-$ -TABLE_X: ; таблица для Sprinter POST-Tester-a -.v0: DB 00101000b ; "0" -.v1: DB 10111101b ; "1" -.v2: DB 00110010b ; "2" -.v3: DB 00110100b ; "3" -.v4: DB 10100101b ; "4" -.v5: DB 01100100b ; "5" -.v6: DB 01100000b ; "6" -.v7: DB 00111101b ; "7" -.v8: DB 00100000b ; "8" -.v9: DB 00100100b ; "9" -.vA: DB 00100001b ; "A" -.vB: DB 11100000b ; "B" -.vC: DB 01101010b ; "C" -.vD: DB 10110000b ; "D" -.vE: DB 01100010b ; "E" -.vF: DB 01100011b ; "F" -;======================================= - -;======================================= -; BLOCK MEM_MAP.ID_Version-$,0 ;#C0-$,0 -ID_Version: - dw bitstream_ver_hex ; Version of bitstream hex - -ID_SPRINTER_length: - DB ID_SPRINTER.LENGTH - -ID_SPRINTER: - DB 'Hardware v' -.bitstream_ver: - DB bitstream_ver_string,0 - DB 'Sprinter',0 - DB 0 -.LENGTH EQU $-ID_SPRINTER - -; Check for max length of string - ASSERT ID_SPRINTER.LENGTH < #20, 'ERROR! ID String is to long!' -;======================================= - - -; BLOCK #FC-$,0 -BoardID: -.start: WORD BoardID_start ; BoardID_start -.end: WORD BoardID_end ; BoardID_end - -; ;======================================= -; BLOCK #100-$,0 - -RESTARTS EQU #FFE0 ; !FIXIT вынести в SP2000.inc - -GLOBAL_RESET: - DI - IM 1 - LD HL,RESTARTS - LD DE,RESTARTS_PROG - LD B,RESTARTS_PROG.length -.compare: - LD A,(DE) - CP (HL) - JR NZ,NO_RESTART - INC HL - INC DE - DJNZ .compare - JP RESTARTS - -;********************************** -; программа, которая будучи размещенной в #40 странице, -; с адреса RESTARTS, перехватывает RESET -; ; Сделать заготовку с DISP-ENT на будущее !!!!! -RESTARTS_PROG: ; !TODO LDConf перехват ресета на любой конфе после hardreset - LD HL,RESTARTS ; 3 - LD B,16 ; 2 -.loop: - LD (HL),0 ; 2 - INC HL ; 1 - DJNZ .loop ; 2 - NOP ; 1 - NOP ; 1 - ; LD A,1 ; 2 - ; OUT (SLOT3),A ; 2 -; ; = 16 bytes -.length EQU $-RESTARTS_PROG -;********************************** - -;------------[Setup Starter]------------ - MODULE Setup_Starter -; программа, размещаемая по адресу 0C000h -; для запуска Setup -Start: - DISP COMPILE_ADDR.SETUP_STARTER -Exec: - LD A,CNF_0 + ROM.EXPANSION - OUT (SYS_PORT.ON),A - - LD HL,ROM_MAP.SETUP - LD DE,MEM_MAP.SETUP - LD BC,BLOCK_Setup.Length - LDIR - - LD A,CNF_0+ROM.EXT - OUT (SYS_PORT.ON),A - -;-----------[Check SPACE] - LD A,#FE ; !HARDCODE - LD BC,Port_All_Mode ; keyboard int & acc off - OUT (C),A - LD A,high ZXKeys.Line_7 - IN A,(ZXKeys) - CPL - AND 1 -; в регистре A передаётся нажата ли клавиша SPACE. -; потом проверяется в main.asm [space_check] -; и если нажата, то происходит игнор параметра -; "Быстрый старт ПЗУ" во время перезагрузки - EX AF,AF' - - LD A,#FF ; !HARDCODE - OUT (C),A ; keyboard int & acc on, zx_screen & original waits off (for conf >= 3.05) - - EX AF,AF' -;----------------------[] - DI - POP HL ; адрес возврата в EXP из SETUP - LD SP,#8000 ;!HARDCODE - PUSH HL - PUSH AF - JP SETUP_MAIN - ENT -Length EQU $-Setup_Starter.Start - ENDMODULE -;--------------------------------------- - - -;SYSTEM_ID_TXT: -; DB "NEW_BIOS" - - -;-----[перехват RESET не состоялся]----- -; -NO_RESTART: -; стек ещё не используем!!! - LD SP,IX ; сохранить значение переданное загрузчиком конфы (если старт после ресета) - -;*************************************** -; инициализация внутренних -; портов Z84C15 для POST-Tester-а -; - LD A,5 ; COM port for Printer OUT - OUT (Z84.SIO.Ch_A.Ctrl),A - LD A,#62 - OUT (Z84.SIO.Ch_A.Ctrl),A - - LD A,#CF ; BITS I/O - OUT (Z84.PIO.Port_A.Command),A - XOR A - OUT (Z84.PIO.Port_A.Command),A - OUT (Z84.PIO.Port_A.Data),A ; PRINTER - PORT - all zeros - -;*************************************** -;-инициализация системных портов Z84C15- -; - LD BC,#FF*256 + Z84.SYS.Control - XOR A - OUT (C),A ; 0 register - waits - INC C - OUT (C),A ; set 0 Waits - - DEC C - - LD A,3 ; 3-rd register - Misc.Control Register - OUT (C),A - INC C - XOR A ; !FIXIT читать доку на Z84, выбрать занчение для A - LD A,1 ; !FIXIT читать доку на Z84, выбрать занчение для A - OUT (C),A ; enable CS0, disable CS1 -; no boundary set! -;********************************** -; - -; - xor a - out (BorderColor),a -; - -; -;********************************** -; ==== POST PROCs ================= - MODULE POST_TEST - -; ********************************* -; ===== Point 0 ======= -; ********************************* - - LD A,(TABLE_X.v0) ; высветить "0" ;rdlow-ok - OUT (Z84.PIO.Port_A.Data),A - -; ==== TEST RAM BUS ======== - -POST_1_RAM_BUS: - LD BC,0 - LD HL,#C000 - LD DE,#0055 - -.loop: - LD (HL),E - INC L - LD (HL),D - DEC L - LD A,(HL) - XOR E - OR C - LD C,A - INC L - LD A,(HL) - XOR D - OR B - LD B,A - DEC L - - DEC E - INC D - JR NZ,.loop - LD A,E - CPL - LD E,A - INC L - INC L - BIT 4,L - JR Z,.loop - - LD A,B - OR C - JR Z,POST_1_OK ; no errors - -; ERROR RAM BUS CODE 'X'X'X'X... - -.error: - LD HL,TABLE_X -.ERB_2: - BIT 0,C - JR Z,.ERB_1 - -; высветить номер ошибочного бита - LD A,(HL) - AND %11011111 ; с запятыми - OUT (Z84.PIO.Port_A.Data),A - -; пауза - LD DE,0 -.pause: - DEC DE - LD A,D - OR E - JR NZ,.pause - -; RRC BC -.ERB_1: - LD A,C - RRA - RR B - RR C - -; бесконечный цикл - INC L - LD A,L - AND #AF - LD L,A - JR .ERB_2 - -; ************************************************ -; ===== Point 1 ============== -; ************************************************ -POST_1_OK: - - LD A,(TABLE_X.v1) ; высветить "1" ;rdlow-ok - OUT (Z84.PIO.Port_A.Data),A - -; ===== TEST ADRESS BUS ====== -POST_2_ADRESS_BUS: - LD HL,#C000 - LD DE,#0000 -.fill_mem: ; заполнить память адресами - LD (HL),E - INC L - LD (HL),D - INC HL - INC DE - INC DE - BIT 7,H - JR NZ,.fill_mem - - DEC HL - DEC DE - DEC DE -.check_mem: ; проверить совпадение - LD A,(HL) - CP D - JR NZ,.error - DEC HL - LD A,(HL) - CP E - JR NZ,.error - DEC HL - DEC DE - DEC DE - LD A,H - CP 0BFh - JR NZ,.check_mem - JR POST_2_OK - -; ошибка адреса CODE: 'XXXX -.error: -.TSAB_4: - LD C,D - LD B,11011111b - LD IX,.TSAB_3 - JR OUT_C_BYTE ; вывести старший байт с запятой -.TSAB_3: - LD C,E - LD B,0FFh - LD IX,.TSAB_4 - JR OUT_C_BYTE ; вывести младший без запятой - -; ===== OUT BYTE PROGRAM ======= - -OUT_C_BYTE: - LD A,C - - RRCA - RRCA - RRCA - RRCA - - AND #0F - OR TABLE_X - LD L,A - LD H,0 - LD A,(HL) - AND B - OUT (Z84.PIO.Port_A.Data),A - - EXX - LD DE,0 -.LOOP_WTT2: - DEC DE - LD A,D - OR E - JR NZ,.LOOP_WTT2 - LD A,#FF - OUT (Z84.PIO.Port_A.Data),A -.LOOP_WTT21: - DEC DE - LD A,D - OR E - JR NZ,.LOOP_WTT21 - EXX - - LD A,C - AND #0F - OR TABLE_X - LD L,A - LD A,(HL) - OUT (Z84.PIO.Port_A.Data),A - - EXX - LD DE,0 -.LOOP_WTT3: - DEC DE - LD A,D - OR E - JR NZ,.LOOP_WTT3 - LD A,#FF - OUT (Z84.PIO.Port_A.Data),A -.LOOP_WTT31: - DEC DE - LD A,D - OR E - JR NZ,.LOOP_WTT31 - EXX - - JP (IX) - -; ************************************************ -; ===== Point 2 ========= -; ************************************************ - -POST_2_OK: - - LD A,(TABLE_X.v2) ;rdlow-ok - OUT (Z84.PIO.Port_A.Data),A ; вывести "2" - -; ===== INIT DCP ======== -POST_3_INIT_DCP: - LD HL,POST_3_OK ; INIT PORTS - JP DCP_INIT ; процедура инициализации с возвратом в (HL) -; ошибок нет - -; *********************************** -; ===== Point 3 ========= -; *********************************** - -POST_3_OK: - LD A,(TABLE_X.v3) ; вывести "3" ;rdlow-ok - OUT (Z84.PIO.Port_A.Data),A - -; ===== TEST RAM PAGES == - - IN A,(SLOT3) - EX AF,AF' ; запомнить - -POST_4_PAGES: - LD B,0 -.loop: - LD A,#FF - LD I,A - LD A,B - OUT (SLOT3),A - LD A,0 - LD I,A - IN A,(SLOT3) - CP B - JR NZ,.error ; если ошибка переключения Port-а - DJNZ .loop - - EX AF,AF' - OUT (SLOT3),A ; восстановить - JR POST_4_OK - -; *********************************** -; ERROR Port CODE 'XX -.error: - LD C,B - LD IX,.error_out_ret -.error_out_ret: - LD B,11011111b - JP OUT_C_BYTE - -; *********************************** -; ===== Point 4 ========= -; *********************************** - -POST_4_OK: - LD A,(TABLE_X.v4) ;rdlow-ok - OUT (Z84.PIO.Port_A.Data),A ; высветить "4" - -;= проверка чистоты шины данных Z84C15 = -POST_5_DATA_BUS: - LD B,0 -.loop: - IN A,(0) - CP #FF -; JR NZ,.error ;!!!!! посмотреть - DJNZ .loop - JR POST_5_OK - -; ERROR CODE '_'XX -.error: - LD C,A -.erb1: - LD IX,.erbr1 - LD B,%11011111 - JP OUT_C_BYTE -.erbr1: - LD A,%11011111 - OUT (Z84.PIO.Port_A.Data),A - - LD DE,0 -.LOOP_WTT4: - DEC DE - LD A,D - OR E - JR NZ,.LOOP_WTT4 - JR .erb1 - -; ********************************** -; ===== Point 5 ========= -; ********************************** - -POST_5_OK: - LD A,(TABLE_X.v5) ;rdlow-ok - OUT (Z84.PIO.Port_A.Data),A ; вывести "5" - -; ********************************** -; POST завершен -; ********************************** - ENDMODULE - - MODULE SET_CONFIG_ID - - IN A,(SLOT3) - EX AF,AF' ; SAVE PAGE3 - -;NO_SUMX_EQ: - - LD A,SYS_PAGE - OUT (SLOT3),A - -;-------------[Save IX:IY]-------------- -; Don't use IY before this point if it`s normal booting!!! - -;NO_NEW_BIOS: - - LD IX,0 - AND A - ADD IX,SP ; восстановить значение переданное загрузчиком конфы (если старт после ресета) -; -; В этом месте у нас IX:IY из Loader.asm -; - -/* -; Дотащили до сюда метку от лоадера -; пока никак не используется - - LD A,IYL - LD L,A - LD A,IYH - LD H,A - - LD BC,#0107 ; !!!!! сравнить с 0107h вынести референсом тут и в loader.asm - AND A ; если равно - прошла перезагрузка - SBC HL,BC - JR Z,set_config -*/ -;--------------------------------------- - LD HL,#FFFD ; !!!!! Sprinter-2 вынести референсом тут и в loader.asm - -set_config: - LD (SYS_PAGE.CONFIG_BYTE),HL ; сохранить номер прошивки -; LD HL,(SYS_PAGE.CONFIG_BYTE) ; взять номер прошивки в HL - - EX AF,AF' - OUT (SLOT3),A ; Restore SLOT3 - - ENDMODULE -;********************************* -; первая инициализация страниц: -; SLOT3=0, SLOT2=2, SLOT1=5, SLOT0=0 - - XOR A - OUT (RGADR),A - OUT (RGMOD),A - OUT (SLOT3),A - OUT (SLOT0),A - LD A,5 - OUT (SLOT1),A - LD A,2 - OUT (SLOT2),A - -;********************************* -; Don't use stack (SP) before this point if it`s normal booting!!! - LD SP,#BFFE ; Начало использования стека!!! - PUSH HL ; сохранить номер прошивки - - CALL PORTS_INIT ; инициализировать порты - CALL EMM.CheckColdInit ; инициализация памяти - - POP HL ; конфигурация - JR Reset_Handler.start -; ************************************* -; Считаем, что вход в SETUP всегда !!! -; ************************************* - -; LD A,H -; CP 0FFH -; JR NZ,NO_SETUP_1 -; LD A,L - -;-----[IF]----- - ; IF SPRIN2 = 2 -; CP 0FDH ; Конфигурация Sprinter-2 -PG_SP1 equ #EC -PG_SP2 equ #EE -PG_AY equ #EA - -; ELSE - -; ; CP #FE ; Конфигурация Sprinter-1 -; PG_SP1 equ #EE -; PG_SP2 equ #EC -; PG_AY equ #EA - -; ENDIF -;-------------- -; JR NZ,NO_SETUP_2 - - MODULE Reset_Handler -start: - IN A,(SLOT3) - push af -;----[перехват soft reset #EE port]----- -Check_EE_Port: - - LD A,Conf_port.RET_PORT - LD B,0 - LD C,BIOS.SET_PORTS - CALL @ToBIOS_3D13 ; переустановить внутр. порт #EE - LD A,B - AND A - jr z,Check_Spec_Page - - DI - OUT (SLOT3),A ; Set restart page - -.After_Hard_Rst: - - LD HL,(#FFF4) ; prog address - ld a,(#FFF0) ; PAGE0 - OUT (SLOT0),A - LD A,(#FFF1) ; PAGE1 - OUT (SLOT1),A - LD A,(#FFF2) ; PAGE2 - OUT (SLOT2),A - LD A,(#FFF3) ; PAGE3 - OUT (SLOT3),A - - jp (HL) -; -;--[перехват soft/hard reset #41 page]-- -Check_Spec_Page: - - LD A,Spec_Page - OUT (SLOT3),A - LD A,(#FFFE) - CP 'Z' - JR NZ,No_Reset_handlers - LD A,(#FFFF) - CP 'X' - JR NZ,No_Reset_handlers - - LD A,(#FFF7) - CP 'R' - JR NZ,Spec_Page_handler_OK - LD A,(#FFF8) - CP 'S' - JR NZ,Spec_Page_handler_OK - LD A,(#FFF9) - CP 'T' - JR NZ,Spec_Page_handler_OK - - XOR A - LD (#FFF7),A - - JR Check_EE_Port.After_Hard_Rst -;--------------------------------------- -No_Reset_handlers: -init_rom_address EQU #8200 ;!HARDCODE - - ld hl,init_zx_roms - ld de,init_rom_address - ld bc,init_zx_roms.length - ldir - - call init_rom_address - - LD HL,#C000 - LD DE,#C001 - LD BC,#3FFF - LD (HL),C - LDIR ; забить FF-ами - - LD HL,PROG_NO_ROM - LD DE,#C000 + #38 - LD BC,PROG_NO_ROM.size - LDIR - - LD HL,RAM_BIOS_PROG - LD DE,#C000 + #08 - LD BC,RAM_BIOS_PROG.Length - LDIR - -Spec_Page_handler_OK: - pop af - OUT (SLOT3),A - - ENDMODULE -;************************************** -; COPY BIOS ТО RAM ???? -;************************************** -; -;************************************** -; - MODULE Prepare_For_Setup - -Set_ALL_Mode: - LD A,#FF - LD BC,Port_All_Mode - OUT (C),A - -Set_Default_Screen: - CALL INT_DEF ; set default int - ld a,128+4 ; !HARDCODE - ld c,#F2 ; !HARDCODE FN_SYNC - RST #18 ; set default vsync - -Setup_to_RAM: - LD HL,Setup_Starter.Start - LD DE,COMPILE_ADDR.SETUP_STARTER - LD BC,Setup_Starter.Length - LDIR - -; на стек кладётся адрес возврата и дальше тащится всякими костылями, чтоб вернуться назад - CALL Setup_Starter.Exec ; #C000 - - JP ZX_SPECTRUM_MODE ; выход в режим zx spectrum - - ENDMODULE -;*********************************** -; Инициализация портов - -PORTS_INIT: - -; включить TURBO - - LD A,D_TBON+CNF_0 - OUT (SYS_PORT.ON),A - -; RESET to ISA - - LD BC,ISA_PORT - LD A,#FF - OUT (C),A -.isa_reset: - DEC A - JR NZ,.isa_reset - OUT (C),A - -; Инициализация последовательного порта клавиатуры - - LD A,0 - OUT (Z84.SIO.Ch_A.Ctrl),A - - LD A,1 - OUT (Z84.SIO.Ch_A.Ctrl),A - LD A,0 ; 18H включение прерываний - OUT (Z84.SIO.Ch_A.Ctrl),A - - LD A,3 - OUT (Z84.SIO.Ch_A.Ctrl),A - LD A,#C1 - OUT (Z84.SIO.Ch_A.Ctrl),A - - LD A,4 - OUT (Z84.SIO.Ch_A.Ctrl),A -;------------------------------ ;!!!!! посмотреть -; ld a,5 - LD A,7 ; ????? 5/7 паритет? -;------------------------------ ;!!!!! посмотреть - OUT (Z84.SIO.Ch_A.Ctrl),A - - LD A,5 - OUT (Z84.SIO.Ch_A.Ctrl),A - LD A,#62 - OUT (Z84.SIO.Ch_A.Ctrl),A - -;--------[Clean keyboard buffer]-------- -.clean_kbd_buf: - IN A,(Z84.SIO.Ch_A.Ctrl) - BIT 0,A - jr z,.mouse - IN A,(Z84.SIO.Ch_A.Data) - jr .clean_kbd_buf -;--------------------------------------- -.mouse: -; Инициализация мыши - - LD A,0 ; for MOUSE - OUT (Z84.SIO.Ch_B.Ctrl),A - - LD A,1 - OUT (Z84.SIO.Ch_B.Ctrl),A - LD A,0 - OUT (Z84.SIO.Ch_B.Ctrl),A - - LD A,3 - OUT (Z84.SIO.Ch_B.Ctrl),A - LD A,#41 - OUT (Z84.SIO.Ch_B.Ctrl),A - - LD A,4 - OUT (Z84.SIO.Ch_B.Ctrl),A - LD A,#44 - OUT (Z84.SIO.Ch_B.Ctrl),A - - LD A,5 - OUT (Z84.SIO.Ch_B.Ctrl),A - LD A,#E0 - OUT (Z84.SIO.Ch_B.Ctrl),A - -; Инициализация таймера мыши - - LD A,85 ; for MOUSE - OUT (Z84.CTC.Ch_0),A - LD A,45 - OUT (Z84.CTC.Ch_0),A - -; Инициализация параллельного порта 1 (принтер) - -; для POST-Tester-а - -; LD A,0CFH ; BITS I/O -; OUT (Z84.PIO.Port_A.Command),A -; XOR A -; OUT (Z84.PIO.Port_A.Command),A ; ALL - out -; OUT (Z84.PIO.Port_A.Data),A ; DATA - all zeros - -; для printer-a - - LD A,#0F ; OUT - OUT (Z84.PIO.Port_A.Command),A - OUT (Z84.PIO.Port_A.Command),A - -; Инициализация параллельного порта 2 (INT/DMA ISA) - - LD BC,Z84.PIO.Port_B.Command - - LD A,#CF ; BITS I/O - OUT (C),A - LD A,#3F - OUT (C),A - LD A,#C0 - OUT (Z84.PIO.Port_B.Data),A - -; "Заглушение" ковокса - - XOR A - OUT (CBL.SYS_PORT),A - LD BC,CBL.OUT - LD A,#80 -.CBL_MUTE: - OUT (C),A - DJNZ .CBL_MUTE - -; Сброс контроллера дисковода - -; Включить доступ к контроллеру диска - - LD A,CNF_3 - OUT (SYS_PORT.ON),A - - OUT (FDC_93.DrvCTRL),A ; !!!!! глянуть - push hl - pop hl - LD A,#3C ; !!!!! глянуть - OUT (FDC_93.DrvCTRL),A ; !!!!! глянуть - push hl - pop hl - XOR A - OUT (FDC_93.Command),A - -; Выключить доступ к контроллеру диска - - LD A,CNF_0 - OUT (SYS_PORT.ON),A - -; set HDD1/not-HDD2 - - LD A,#21 ;!HARDCODE сделать через метку - OUT (#BC),A ;!HARDCODE - -; CALL DOS_OFF - - - LD BC,#7FFD - LD A,#10 - OUT (C),A ; BASIC_48 mode - LD B,#1F - LD A,01 - OUT (C),A ; RAM-0 mode !!! - - RET - -;************************************** - -; -;------------------------[copy zx-roms to zx-pages]---------------------; -; SLOT0 - ROM 8, sys_port - on. -; RAM SLOT0 - page 0 -; для режима zx spectrum -; ВЫПОЛНЯЕТСЯ ИЗ ОЗУ -init_zx_roms: - DISP Reset_Handler.init_rom_address - - in a,(SLOT3) - push af - - DI - LD A,1 - OUT (SYS_PORT.ON),A - ld a,2 - - IF SetFullZXromLoader - ld b,6 ; zx-rom number of pages - ELSE - ld b,4 - ENDIF - -.loop: - push bc - - out (ROM.SLOT0),a - or %01000000 - out (SLOT3),a - and %10111111 - - LD HL,0 - LD DE,#C000 - LD BC,#4000 - LDIR - - inc a - pop bc - DJNZ .loop - - xor a - out (ROM.SLOT0),a - OUT (SYS_PORT.ON),A - POP AF - out (SLOT3),a - - - LD A,#E2 ; ROM-ID - BASIC 128 - LD B,#42 ; page - CALL .SET_ROM - - LD A,#E3 ; ROM-ID - BASIC 48 - LD B,#43 ; page - CALL .SET_ROM - - LD A,#E1 ; ROM-ID - TR-DOS - LD B,#44 ; page - CALL .SET_ROM - - LD A,#E0 ; ROM-ID - EXPANSION - LD B,#45 ; page - CALL .SET_ROM - - - LD A,#EB ; ROM-ID - BIOS-1 - IF SetFullZXromLoader - LD B,#46 ; page - ELSE - LD B,#45 ; page - ENDIF - CALL .SET_ROM - - - IF SetFullZXromLoader - LD A,#EF ; ROM-ID - BIOS-2 - LD B,#47 ; page - CALL .SET_ROM - ENDIF - RET - -.SET_ROM: - LD C,BIOS.SET_PORTS - JP ToBIOS_3D13 - - ENT -.length EQU $-init_zx_roms -;-----------------------------------------------------------------------; -; - - -;************************************** -;************************************** - -GOTO_SPEC: ; ????? процедура биоса для захода в режим спеткрума - IN A,(SLOT3) - EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT3),A - LD A,B - LD (SYS_PAGE.CONFIG_DE+1),A - EX AF,AF' - OUT (SLOT3),A - -;NO_SETUP_2: -; CP #FC -; JR Z,SPECTRUM_0 ; Конфигурация AY - -;NO_SETUP_1: -ZX_SPECTRUM_MODE: -; LD A,(#A8) -; OUT (Z84.PIO.Port_A.Data),A - - LD A,#FE ; !HARDCODE сделать через метку ACC-off Spectrum-MODE - LD BC,Port_All_Mode - OUT (C),A - -;SND_TEST_RET: - LD SP,#BFFF - - CALL INT_PENT - CALL SET_PAL_ZX - - LD HL,#4104 - LD E,0 - LD B,4 - CALL LP_OPEN_S - - LD HL,#5104 - LD E,0 - LD B,4 - CALL LP_OPEN_S - -;************************************* -/* - LD D,#35 - CALL CMOS_RD - BIT 0,A ; !!!!! -*/ -; PUSH AF -; CALL Z,SPRINTER_1 -; POP AF -; PUSH AF -; CALL NZ,AY8910 -; POP AF - -;************************************* - -SPECTRUM_0: - XOR A ; задача 0, режим 256 килобайт -SPECTRUM_TASK: - LD IX,BASIC_128 - JP INIT_PAGES ; инициализация номеров страниц режима спектрума - -BASIC_128: -;start_basic: - LD SP,#BFFF - LD HL,RES128_PROG - LD DE,#5B00 ; запуск программы на BASIC-е. - LD BC,LEN_RES128 - LDIR - DI - JP #5B00 - -;******************************** -; Программа, размещаемая на 5B00h для запуска Spectrum-а - -RES128_PROG: - LD A,ROM.EXT - OUT (SYS_PORT.OFF),A ; Возврат в 128k ROM - LD C,SLOT3 - IN B,(C) - LD A,SYS_PAGE - OUT (SLOT3),A - LD DE,(SYS_PAGE.CONFIG_DE) - XOR A - LD (SYS_PAGE.CONFIG_DE+1),A - OUT (C),B - - LD BC,#1FFD - OUT (C),A ; Scorp порт - LD B,#7F - OUT (C),A ; 128 порт - - LD A,E ; установка конфигурации и режима TURBO - OUT (SYS_PORT.OFF),A ; CONFIG_SET - - INC D - DEC D - JP Z,0 ; 0 ВХОД В BASIC-128 - LD A,#10 - OUT (C),A - DEC D - JP Z,0 ; 1 ВХОД В BASIC-48 - - LD HL,0 - PUSH HL - DEC D - JP Z,#3D29 ; 2 ВХОД В TR-DOS - - XOR A - OUT (C),A - LD A,#02 - LD B,#1F - OUT (C),A - DEC D - JP Z,0 ; 3 ВХОД В EXPANSION ??? - - LD A,0 - OUT (C),A - LD A,#30 - LD B,#7F - OUT (C),A - DEC D - JP Z,#3D29 ; 4 ВХОД В TR-DOS с закрытыми 128-ми портами - JP 0 ; 5 ВХОД В BASIC-48 с закрытыми 128-ми портами -LEN_RES128 EQU $-RES128_PROG - -;***************************************************** - -TURBO_OFF: - LD A,D_TBOFF - OUT (SYS_PORT.ON),A - RET - -TURBO_ON: - LD A,D_TBON - OUT (SYS_PORT.ON),A - RET - -JP_HL: JP (HL) - -;*************************************** - -RAM_BIOS_PROG: ; for CALL BIOS in 41h page - PUSH AF - LD A,ROM.EXT - OUT (SYS_PORT.ON),A - POP AF - RET - NOP -.Length EQU $-RAM_BIOS_PROG -; JR RST_18_1 - - -; -; -PROG_NO_ROM: - DISP #38 - - DI - - LD A,#FF - OUT (SLOT3),A - OUT (SLOT2),A - OUT (SLOT1),A - - LD SP,#BF00 - - LD C,BIOS.LP_OPEN_S - LD B,3 - LD E,0 - RST ToBIOS - - LD C,BIOS.LP_CLS_WIN - LD DE,0 - LD HL,#2050 - RST ToBIOS - - LD A,1 - OUT (RGMOD),A ; set scr-2 - - LD HL,MESSAGE_NR - LD DE,#A000 - LD BC,MESSAGE_NR.size - LD A,C - LDIR - - LD HL,#A000 - LD D,0 ; delimiter - LD E,COLORS.FLASH + COLORS.PAPER.RED + COLORS.INC.CYAN - LD B,A - LD C,BIOS.LP_PRINT_LN3 - RST ToBIOS - -1: DI : HALT - JR 1B - -MESSAGE_NR: DZ " Spectrum ROM not installed. Use spectrum.exe Press Ctrl+Alt+Del or RESET" -.size EQU $-MESSAGE_NR - - ENT -PROG_NO_ROM.size EQU $-PROG_NO_ROM -;-------------[new code end]------------ - - -;***************************************************** - - -;CH_2: -; LD A,2 -;C_1601: ; OPEN CHANEL -; CALL_48 1601h -; RET - - -;PRINT_LINE: -; LD A,(HL) -; INC HL -; CP 0FFh -; RET Z -; RST 10H -; JR PRINT_LINE - - -; JP RESET_128 - -;******************************** -; *** UTILITES *** -;******************************** - -;C_0030: ; получить раб обл -; CALL_48X 0030h -; RET -;C_19E8: ; очистить раб обл -; CALL_48X 19E8h -; RET -;C_1655: ; получить пространство -; CALL_48X 1655h -; RET - -;**************************************** -; ******* SERVICE ******* -;**************************************** - -;******************************************************* -; ДЕШИФРАЦИЯ КОМАНДНОЙ СТРОКИ,ПЕРЕДАННОЙ ДЛЯ "EXPANSION" -;******************************************************* - -;COMAND_LINE: -; LD HL,(CH_ADR) -;COMAND_LOOP: -; LD A,(HL) -; INC HL -; CP ":" -; JR Z,COMAND_L1 -; CP 0Dh -; JR NZ,COMAND_LOOP -; RET - -;COMAND_L1: -; LD A,(HL) -; CP 0EAh ; REM !!! -; RET NZ -; INC HL -;COMAND_OK: ; ОБНАРУЖЕНА КОМАНДА ДЛЯ 'expansion' -; LD A,(HL) -; INC HL -; CP ':' -; JP Z,MENU_S1 -; CP 0Dh -; JP Z,MENU_S1 -; CP 'I' -; JR Z,COMAND_ISD -; CP 'i' -; JR Z,COMAND_ISD -; CP 'T' -; JR Z,TASK_SWITCH -; CP 't' -; JR Z,TASK_SWITCH -; DEC HL -; POP BC -; JP BASIC_MENU -;MENU_S1: -; POP BC -; CALL SERVICE -; JP SW_ROM_1 -; -;COMAND_ISD: -; LD A,(HL) -; INC HL -; CP 'S' -; JP Z,COMAND_ISD2 -; CP 's' -; JP Z,COMAND_ISD2 -; RET - -;COMAND_ISD2: -; POP BC -; CALL ISDOS -; JP SW_ROM_1 - - -;TASK_SWITCH: -; -;; *** Сохранить задачу *** -; PUSH IY -; PUSH IX -; PUSH AF -; PUSH BC -; PUSH DE -; PUSH HL - -; EXX -; EX AF,AF' - -; PUSH AF -; PUSH BC -; PUSH DE -; PUSH HL -; -; LD A,R -; PUSH AF -; LD A,I -; PUSH AF -; -; LD A,(HL) -; RLCA -; RLCA -; RLCA -; RLCA -; AND 30H ; новая задача 0..3 -; LD C,A - -; IN A,(SLOT3) -; LD B,A ; 3-я страница текущей задачи -; LD A,SYS_PAGE -; OUT (SLOT3),A -; -; LD IX,TASK_DATA ; данные задач -; LD E,(IX) ; старая задача -; LD D,0 -; ADD IX,DE ; данные текущей задачи -; LD E,16 -; ADD IX,DE ; смещение данных в таблице задач -; -; LD (IX+1),B ; сохранить страницу 3 -; LD HL,0 -; ADD HL,SP -; LD (IX+2),L ; сохранить стек задачи -; LD (IX+3),H -; SET 0,(IX) ; установить флаг сохраненности текущей задачи -; RES 1,(IX) ; установить флаг, что задача покинута - -; LD IX,TASK_DATA -; LD E,C -; LD D,0 -; ADD IX,DE ; новая задача -; LD E,16 -; ADD IX,DE ; смещение данных в таблице задач - -; BIT 1,(IX) -;; JR NZ,TASK_IN_WORK ; задача в работе ??? неверное завершение -; ; сбрасывать или просто возвращаться -; -; BIT 0,(IX) ; была сохранена/нет -; JR NZ,TASK_SET ; задача существует -; -;; задачи не было! -; LD IX,TASK_DATA -; LD A,C ; задача -; LD (IX),A ; установить новую задачу текущей -; -; JP SPECTRUM_TASK ; запустить новую задачу! -; и пока пофиг распределение памяти! - -;TASK_SET: -; -; LD IX,TASK_RESTORE -; LD A,C -; EXX -; JP INIT_PAGES ; переключить все страницы! - -;TASK_RESTORE: -; EXX -; LD A,SYS_PAGE -; OUT (SLOT3),A -; LD A,C -; LD IX,TASK_DATA -; LD (IX),A ; установить новую задачу текущей - -; LD E,A -; LD D,0 -; ADD IX,DE ; новая задача -; LD E,16 -; ADD IX,DE - -; LD L,(IX+2) ; вспомнить стек -; LD H,(IX+3) -; LD SP,HL -; LD A,(IX+1) ; вспомнить третью страницу -; OUT (SLOT3),A - - -; POP AF ; восстановить -; LD I,A -; POP AF -; LD R,A -; POP HL -; POP DE -; POP BC -; POP AF -; EX AF,AF' -; EXX -; POP HL -; POP DE -; POP BC -; POP AF -; POP IX -; POP IY -; ; вернуться в задачу -; -;NO_TASK: -; POP BC -; JP SW_ROM_1 -; -;; 259F - ADRESS BASIC128 - MAIN_MENU - -;********************************************** -; paths from project DIR - INCLUDE 'EXP_HDD.asm' - INCLUDE 'SERVICE.asm' -; INCLUDE 'TEST.ASZ' - INCLUDE 'FLEX.asm' - IFN SET_NEWdcp - INCLUDE './src/bios/old_files/EXP_DCP_UNPACKER.asm' - ENDIF -; INCLUDE 'EXP_SCR.ASZ' - INCLUDE 'EXP_PIC2.asm' - - IFN SET_NEWdcp - INCLUDE 'EXP_FN2.asm' - ELSE - INCLUDE 'EXP_FN.ASM' - INCLUDE 'EXP_FN2.asm' - ENDIF -;********************************************** -; BLOCK DCP_DATA-$,#FF -; -; #-5kb-############################## -; #::::::::::::::::::::::::::::::::::#\ -; #::::: Место данных для DCP :::::::#\ -; #::::::::::::::::::::::::::::::::::#\ -; ####################################\ -; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -DCP_DATA: - - IFN SET_NEWdcp - INCBIN './src/bios/old_files/EXP_DCP.LZ' - ELSE - INCLUDE 'EXP_DCP_2.ASM' - ENDIF -;********************************************** - -;********************************************** - ;BLOCK #2800-$,#FF -; -; #-2kb-############################## -; #::::::::::::::::::::::::::::::::::#\ -; #:::: Здесь место для IBM-ZG ::::::#\ -; #::::::::::::::::::::::::::::::::::#\ -; ####################################\ -; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -ZG_ADRESS: - INCBIN 'EXP_FONT.FNT' -;********************************************** -; BLOCK #3000-$,#FF - IFN SET_NEWdcp - INCLUDE 'EXP_FN.asm' - ENDIF - INCLUDE 'EXP_LP2.asm' -;********************************************** -FN_SEND_BYTE: - LD E,A ; сохранить байт - CALL SEND_HALF_BYTE ; передать полубайт из Е - RET C ; возврат по ошибке - LD A,E ; сдвинуть байт на 4 бита - RRCA - RRCA - RRCA - RRCA - LD E,A - -SEND_HALF_BYTE: ; передать половину байта _E_!! - LD A,E - OR #F0 ; установить старшие биты LPT дата - OUT (Z84.PIO.Port_A.Data),A - LD BC,0 ; счетчик тайм-аута - -WAIT_SENT_1: - IN A,(KEMPSTON.JOY_DOS) ; проверить бит 4 на 1 при готовности PC - BIT 4,A - JR NZ,CONTINUE_SENT - DEC BC - LD A,B - OR C - JR NZ,WAIT_SENT_1 - XOR A - SCF ; тайм-аут - RET - -CONTINUE_SENT: ; PC - готов - LD A,E - AND #0F ; сбросить старшие биты LPT - - OUT (Z84.PIO.Port_A.Data),A - - LD BC,0 ; счетчик тайм-аута - -WAIT_SENT_2: - IN A,(KEMPSTON.JOY_DOS) ; проверить бит 4 на 0 - сообщение от PC - BIT 4,A - JR Z,CONTINUE_SENT2 - DEC BC - LD A,B - OR C - JR NZ,WAIT_SENT_2 - LD A,E - OR #F0 ; установить старшие биты LPT дата - OUT (Z84.PIO.Port_A.Data),A - XOR A - SCF ; тайм-аут - RET - -CONTINUE_SENT2: ; полубайт передан - LD A,E - OR #F0 ; установить старшие биты LPT дата - OUT (Z84.PIO.Port_A.Data),A - XOR A - RET - -;********************************************** - -FN_RESEIVE_B: ; принять байт в A - - CALL RESEIVE_POLU_BYTE ; принять полубайт - RET C ; возврат по ошибке - RLCA - RLCA - RLCA - RLCA - AND #F0 - LD E,A - CALL RESEIVE_POLU_BYTE ; второй - RET C - AND 0Fh - OR E - RET ; байт принят - -RESEIVE_POLU_BYTE: ; принять половину байта в Е - - LD A,#F0 ; установить старшие биты LPT дата - OUT (Z84.PIO.Port_A.Data),A - LD BC,0 ; счетчик тайм-аута - -WAIT_RES_1: - IN A,(KEMPSTON.JOY_DOS) ; проверить бит 4 на 1 при готовности PC - BIT 4,A - JR NZ,CONTINUE_RES - DEC BC - LD A,B - OR C - JR NZ,WAIT_RES_1 - XOR A - SCF ; тайм-аут - RET - -CONTINUE_RES: ; PC - готов, ждать 0 - XOR A ; сбросить старшие биты LPT - ждем полубайт - OUT (Z84.PIO.Port_A.Data),A - - LD BC,0 ; счетчик тайм-аута - -WAIT_RES_2: - IN A,(KEMPSTON.JOY_DOS) ; проверить бит 4 на 0 - сообщение от PC - BIT 4,A - JR Z,CONTINUE_RES2 - DEC BC - LD A,B - OR C - JR NZ,WAIT_RES_2 - LD A,#F0 ; установить старшие биты LPT дата - OUT (Z84.PIO.Port_A.Data),A - SCF - RET ; ошибка - -CONTINUE_RES2: ; полубайт выставлен -LOOP_EQ: ; прочитать еще раз, что бы совпало - AND #0F - LD B,A - IN A,(KEMPSTON.JOY_DOS) - AND #0F - CP B - JR NZ,LOOP_EQ - - OR #F0 ; установить старшие биты LPT дата в 1 - принято - OUT (Z84.PIO.Port_A.Data),A - RET - -;*************************************** -;!!!!! посмотреть -; BLOCK #3CC0-$,255 - ; no-magics! -;MAGIC_1: ; ЗАГЛУШКА ДЛЯ MAGIC -; PUSH AF -; LD A,ROM.EXT -; OUT (SYS_PORT.OFF),A -; POP AF -; JP MAGIC_1 -;MAGIC_3: -; PUSH AF -; LD A,ROM.EXT -; OUT (SYS_PORT.OFF),A -; POP AF -; RETN -;MAGIC_2: -;; CALL MG_BEGIN -; JR MAGIC_3 - -;************************* -; BLOCK #3CE0-$,0 -;SW_ROM_1: -; LD HL,259Fh -; PUSH HL -; LD HL,5B00h -; LD A,(HL) -; CP #F5 -; JR Z,JP_HL_48 ; ВОЗВРАТ К МЕНЮ BASIC128 -; POP HL -; JR SW_ROM ; ПРОСТОЙ ВОЗВРАТ -;************************* - -; BLOCK #3CF0-$,0 -;JMP_48: -; LD HL,00h -; JR JP_HL_48 -; -; NOP -; NOP -; NOP - -;*************************************** -; BLOCK #3CF8-$,0 - ; no basic-48! -;JP_HL_48: -; PUSH HL -;SW_ROM: -; PUSH AF -; LD A,ROM.EXT -; OUT (SYS_PORT.OFF),A -; POP AF -; RET -;*************************************** - _mInfoBLOCK #3D00-$,#FF -DOS_ON: NOP - RET -;*************************************** - -;*************************************** -; BLOCK #3D02-$,FF -; !TODO можно оприходовать тут 17 байтов -; -;*************************************** - -;*************************************** - _mInfoBLOCK #3D13-$,#FF - - NOP - JP #18 -;*************************************** - -;*************************************** -; BLOCK #3D17-$,FF -; !TODO можно оприходовать тут 233 байта -; -;*************************************** - -;*************************************** - _mInfoBLOCK #3E00-$,#FF -DOS_OFF: - DI - PUSH AF - PUSH BC - LD BC,(#5BFF) ; !HARDCODE - LD A,#C9 - LD (#5BFF),A ; !HARDCODE - CALL #5BFF ; !HARDCODE - LD (#5BFF),BC ; !HARDCODE - POP BC - POP AF - RET -;*************************************** - -;*************************************** -;START_HDD: -; -; LD C,2 -; CALL EXP_HDD -; RET C -; -; LD A,0 -; OUT (0FEH),A -; -; LD HL,4000H -; LD DE,4001H -; LD BC,1AFFH -; LD (HL),0 -; LDIR -; -; LD HL,0 -; LD IX,LP_SCR_80 -; CALL WIN_OPEN_WIN -; -; LD HL,#2050 -; LD DE,0 -; LD B,07H -; CALL LP_CLS_WIN -; -; LD DE,0 -; CALL LP_SET_PLACE -; -; LD HL,ID_SPRINTER -; LD E,47H -; LD B,L_ID -; CALL LP_PRINT_LINE -; -; LD C,0 -; CALL EXP_HDD -; RET C -; -; LD DE,1 -; LD IX,0 -; LD B,16 -; LD HL,8000H -; LD C,5 -; CALL EXP_HDD -; RET C -; LD HL,8000H -; LD DE,HDD_MSG -; LD B,HDD_MSG_LEN -;START_HDD_L: -; LD A,(DE) -; CP (HL) -; JR NZ,NO_BOOT -; INC HL -; INC DE -; DJNZ START_HDD_L -; JP (HL) -;NO_BOOT: -; RET -; - -;HDD_MSG: DB "Starting...",0 -; -;HDD_MSG_LEN EQU $-HDD_MSG -; -;HDD_MSG_NO: DB "Boot record not found" -;HDD_NO_LEN EQU $-HDD_MSG_NO - -;SAVE_AUTOSTART: -; LD HL,8000H -; LD DE,HDD_MSG -; LD B,HDD_MSG_LEN -;SAVE_AUTO_L1: -; LD A,(DE) -; CP (HL) -; RET NZ -; INC HL -; INC DE -; DJNZ SAVE_AUTO_L1 -; -; LD C,0 -; CALL EXP_HDD -; RET C -; -; LD HL,8000H -; LD A,0 -; LD DE,1 -; LD IX,0 -; LD B,16 -; LD C,6 -; CALL EXP_HDD -; RET -;*************************************** - -;*************************************** -; BLOCK #3E16-$,FF -; !TODO можно оприходовать тут 10 байтов -; -;*************************************** - -;*************************************** -;------[ ; !TODO что- то связанное с переменными LIB_TABLE ; ]------ -; _mInfoBLOCK #3E20-$,#FF - -FN_LIB: - SCF - RET -/* - - IN A,(SLOT3) - LD B,A - LD A,SYS_PAGE - OUT (SLOT3),A - PUSH HL - LD L,C - дешефратор API изменился и теперь в C не то, что тут ожидается. Ожидается #A0..AF - LD H,#C1 - LD A,(HL) - POP HL - AND A - SCF - JR Z,FN_LIB_RET - - OUT (SLOT3),A - LD (#C0FE),SP - LD SP,#C0F0 - PUSH BC - CALL #C100 ; !HARDCODE - POP BC - LD SP,(#C0FE) - ; LD A,B - ; OUT (SLOT3),A - ; RET - -FN_LIB_RET: - LD A,B - OUT (SLOT3),A -; SCF - RET -*/ -;---------------------------------------------------------------[]------ - -FN_KBD_OUT: ; вход A - byte -; B - speed_parameter - - AND A - LD E,A - LD D,#FF - JP PE,kbd_parity ; установка паритета PE/PO ??? - LD D,#FE -kbd_parity: - AND A ; первый бит - start-bit - 0 - RL E - RL D ; в DE - 11 бит для передачи - LD C,11 - -kbd_loop: - LD A,5 - OUT (Z84.SIO.Ch_A.Ctrl),A - LD A,#60 - BIT 0,E - JR NZ,no_inv - XOR 2 ; данные -no_inv: - LD L,A - OUT (Z84.SIO.Ch_A.Ctrl),A ; выставить данные - - LD A,5 - OUT (Z84.SIO.Ch_A.Ctrl),A - LD A,L - OR #80 ; синхроимпульс - OUT (Z84.SIO.Ch_A.Ctrl),A ; импульс синхро - LD A,B ; speed_par -kbd_loop1: - PUSH HL - POP HL - DEC A - JR NZ,kbd_loop1 - LD A,5 - OUT (Z84.SIO.Ch_A.Ctrl),A - LD A,L - OUT (Z84.SIO.Ch_A.Ctrl),A ; снять импульс синхро - - LD A,B ; speed_par -kbd_loop2: - PUSH HL - POP HL - DEC A - JR NZ,kbd_loop2 - RR D - RR E - DEC C - JR NZ,kbd_loop - - LD A,5 - OUT (Z84.SIO.Ch_A.Ctrl),A - LD A,#60 - OUT (Z84.SIO.Ch_A.Ctrl),A ; закончить передачу - AND A - RET -;**************************************** - - -; Чтение с ROM-Disk -; HL - адрес, куда читать -; DE - номер сектора (считать по 256b сектор) -; B - число секторов -; A' - размер сектора (1 - 256b, 2 - 512 b) -ROM_DISK: - LD C,0 ; счетчик - EX AF,AF' - DEC A - JR Z,.loop - DEC A - SCF - RET NZ - - EX DE,HL - ADD HL,HL - EX DE,HL - LD A,B - ADD A,A - LD B,A - RET C - - CALL .loop - RET C - AND A - RR D - RR E - XOR A - RET - -/* -; ????? какой-то глюк недоделанный -READ_ROM_PAGE_X: - LD DE,0 - LD BC,#100 ; один сектор - PUSH DE - PUSH BC - LD HL,ROM_DISK_PGS - LD DE,#FF00 ; !HARDCODE - LD A,#1F ; last page ROM - JR LOOP_NEXT -*/ - -.loop: - PUSH DE ; номер сектора - PUSH BC - - LD A,E - AND 63 ; ADRESS in ROM-Page - PUSH AF ; сохранить адрес - - EX DE,HL ; DE - адрес буфера - ADD HL,HL - ADD HL,HL ; H - номер банки - - LD A,(ROM_DISK.Pages.Number) - INC H - CP H - LD L,H - LD H, high ROM_DISK.Pages.Number ; ROM-Disk pages! - LD A,(HL) ; PAGE-ROM - - POP HL ; восстановить адрес в ROM-Page - LD L,0 ; если далеко захотели - выход с ошибкой - JR C,.errorExit ; ROM-Disk-end - -; DE - буфер -; HL - адрес в ROM -; B - число секторов -; A - ROM-Page -.loopRead: - DI - PUSH HL ; откуда - PUSH DE ; куда - - LD HL,-.stackDepth - .readProcedure.size ; memory stack use! - ADD HL,SP ; stack - - PUSH HL ; адрес программы .readProcedure - - LD DE,.readProcedure ; перенести программу на стек - EX DE,HL - LD BC,.readProcedure.size - LDIR ; программа на стеке - LD BC,#100 ; длина сектора - RET ; исполнить программу .readProcedure, на стеке адреса буфера и ROM - - -; DE - next address -; HL - ROM address -.readNext: - POP BC ; число секторое - - INC C ; счетчик считанных секторов - DEC B ; сектора кончились? - - JR Z,.normExit - BIT 6,H ; чтение не закончено - - PUSH BC ; сохранить счетчики - JR Z,.loopRead ; читать дальше - POP BC - - POP HL ; номер сектора - - LD A,B - LD B,0 - ADD HL,BC - LD B,A ; вычислить след.сектор - - EX DE,HL ; теперь HL - адрес, DE сектор, B - сколько еще читать - - JP .loop ; начать все снова! - -; чтение закончено -.normExit: - POP HL ; сектор, откуда велось чтение - ADD HL,BC ; по возврату: HL - след.адрес - EX DE,HL ; DE - след.сектор - AND A - RET -; ошибка -.errorExit: ; !TODO сделать, чтоб на выходе показывалось количество прочитанных секторов - POP BC - POP DE - SCF - RET - -; процедура, переносимая на стек для чтения из ROM-Disk -; осторожнее с PUSH, если надо много, то увеличивай .stackDepth -.readProcedure: - POP DE ; куда - POP HL ; откуда - OUT (ROM.SLOT0),A ; ROM_PAGE - LDIR ; здесь читается из ROM-Disk - LD B,A - XOR A - OUT (ROM.SLOT0),A - OUT (SYS_PORT.ON),A - LD A,B - JP .readNext -.stackDepth EQU 8 ; расстояние от конца процедуры до вершины стека. -.readProcedure.size EQU $-.readProcedure -;-----------------------------------------------------------------------; -; - -;-----------------------------------------------------------------------; -; ROM-Disk pages ; [ ] активировать ROM-DISK - _mInfoALIGN 256,#FF -; BLOCK #3F00-$,#FF -ROM_DISK.Pages.Number: - DB ROM_DISK.Pages.Size ; число страниц -; у страниц выставлен bit4 для корректной подстановки -;(подробнее в sp2000.inc - Порт управления страницами ПЗУ) -ROM_DISK.Pages: ; страницы ROM-Disk -; ABYTE #10 #01,#02,#03,#04,#05,#06,#07,#09,#0A,#0B ; 163840 bytes - without ZX-ROMS - IFN SetFullZXromLoader - ABYTE #10 #06,#07,#09,#0A,#0B ; 81920 bytes - - ELSE - ABYTE #10 #09,#0A,#0B ; 49152 bytes - - ENDIF - -.Size EQU $-ROM_DISK.Pages -; конец - FF -; DB #FF -;-----------------------------------------------------------------------; - -; - _mInfoBLOCK ToBIOS_FromEXT-$,#FF -;------------[Return to ROM]------------ -; #3FD0 -; Для вызова функций биоса из страницы 0 ПЗУ (ROM Extension) -FN1_RET: - PUSH AF - LD A,ROM.EXPANSION - OUT (SYS_PORT.ON),A - POP AF - RST #18 - JR FN1_RET - -; !TODO Free 7 bytes -;--------------------------------------- -; - - -; - _mInfoBLOCK #3FE0-$,#FF -;---------------[ Free ]---------------- -; !TODO Free 8 bytes and entry point -;SOUND_TEST: -; LD A,ROM.EXPANSION -; OUT (SYS_PORT.ON),A -; JP SND_TEST_RET -;--------------------------------------- -; - -;!TEST не нужно если new_api_table -;------------[HDD_5x portal]------------ -; точка входа/выхода для функций 5х из EXP - _mInfoBLOCK #3FE8-$,#FF -EXP_HDD: ;HDD_EXE: - PUSH AF - LD A,ROM.EXPANSION - OUT (SYS_PORT.ON),A - POP AF - RET -;--------------------------------------- -; - - -; - _mInfoBLOCK #3FF0-$,#FF -;---------------[ Free ]---------------- -; !TODO Free 8 bytes and entry point -;--------------------------------------- -; - - -; - _mInfoBLOCK #3FF8-$,#FF -;-----[ From TR-DOS to API #80..#FF]----- -; Точка входа/выхода для TR-DOS -EXP_FNS_RET: - PUSH AF - LD A,ROM.EXT - OUT (SYS_PORT.OFF),A ; Точка входа/выхода из/в TR-DOS при вызове функций BIOS #80..#FF - JP EXP_FNS ; !TEST new_api -;--------------------------------------- -; - -; - _mInfoBLOCK #4000-$,#FF -;======================================================================= diff --git a/src/bios/backup/EXP_FN.as b/src/bios/backup/EXP_FN.as deleted file mode 100644 index 1ba734b..0000000 --- a/src/bios/backup/EXP_FN.as +++ /dev/null @@ -1,841 +0,0 @@ -; - _mInfoALIGN 256,0 -TAB_FNS: ; !FIXIT поправить в доке названия функций, часть не совпадает -; 8x -/* 80 */ DW LP_OPEN_S ; открытие окна -/* 81 */ DW LP_PRINT_ALL ; печать символа в окно -/* 82 */ DW LP_PRINT_SYM ; печать символа без атр -/* 83 */ DW LP_PRINT_ATR ; печать только атрибута -/* 84 */ DW LP_SET_PLACE ; установка позиции печати -/* 85 */ DW LP_PRINT_LINE ; печать строки длиной B -/* 86 */ DW LP_PRINT_LINE2 ; печать строки -//- без атрибутов -/* 87 */ DW LP_PRINT_LINE3 ; печать строки длиной B до D -/* 88 */ DW LP_PRINT_LINE4 ; печать строки -//- без атрибутов -/* 89 */ DW LP_CLS_WIN -/* 8A */ DW LP_SCROLL_UD -/* 8B */ DW LP_PRINT_LINE5 -/* 8C */ DW LP_PRINT_LINE6 -/* 8D */ DW LP_CLS_WIN2 -/* 8E */ DW LP_GET_PLACE -/* 8F */ DW FN_TURBO -; 9x -/* 90 */ DW EMM.GetMemSize ; неразрушающее определение объема ОЗУ. -/* 91 */ DW EMM.InitMem ; инициализация распределения памяти -/* 92 */ DW EMM.GetMemRMD ; получить блок памяти для рамдиска -/* 93 */ DW EMM.FreeMemRMD ; освободить блок памяти рамдиска -/* 94 */ DW EMM.GetMemPageRMD ; получить номерa страниц RAM-Disk -/* 95 */ DW EMM.GetMemPageNext ; получить следующую страницу -/* 96 */ DW EMM.GetBanksPorts ; получить адреса портов -/* 97 */ DW EMM.CheckColdInit ; проверка на холодный старт и инициализации если он ;????? нужна ли как API? -/* 98 */ DW RAMD_CALC_PAGE ; Fn 98h ;????? -/* 99 */ DW SET_DISK_TYPE ; ;????? -/* 9A */ DW DISK_REDIR ; ;????? -/* 9B */ DW FN_NO ;GET_RAMD_NUM ; получить номер ram disk по его block id -/* 9C */ DW FN_NO ; -/* 9D */ DW EMM.DivMemBlocks ; разделения блока на два. -/* 9E */ DW EMM.MergeMemBlocks ; слияние двух блоков -/* 9F */ DW EMM.FullInit ; инициализация всей памяти, системных переменных -; Ax -/* A0 */ DW PIC_FN0 ; ОТКРЫТИЕ ОКНА - Fn 0A0h -/* A1 */ DW PIC_FN1 ; ВЫВЕСТИ ТОЧКУ -/* A2 */ DW PIC_FN2 ; ВЫВОД ЛИНИИ COPY -/* A3 */ DW PIC_FN3 ; ВЫВОД ЛИНИИ FILL -/* A4 */ DW PIC_FN4 ; ВЫВОД ПАЛИТРЫ -/* A5 */ DW PIC_FN5 ; УСТАНОВКА RGMOD -/* A6 */ DW PIC_FN6 ; A - page_pal, E - номер палитры, B - тип палитры -/* A7 */ DW PIC_FN7 ; Рисование линии одного цвета -/* A8 */ DW PIC_FN8 ; Рисование разноцветной линии -/* A9 */ DW PIC_FN9 ; нет -/* AA */ DW PIC_FN10 ; нет -/* AB */ DW PIC_FN11 ; нет -/* AC */ DW PIC_FN12 ; нет -/* AD */ DW PIC_FN14 ; нет -/* AE */ DW PIC_FN14 ; нет -/* AF */ DW PIC_FN15 ; нет -; Bx -/* B0 */ DW WIN_OPEN ; открытие окна по описателю -/* B1 */ DW WIN_CLOSE ; закрытие окна -/* B2 */ DW WIN_COPY ; сохранение текстового окна в памяти -/* B3 */ DW WIN_RESTORE ; восстановление текстового окна из памяти -/* B4 */ DW WIN_GET_SYM ; взять символ -/* B5 */ DW WIN_PUT_SYM ; положить символ -/* B6 */ DW WIN_SET_ZG ; загрузка знакогенератора -/* B7 */ DW WIN_MOVE ; переместить окно -/* B8 */ DW WIN_GET_ZG ; получить знакогенератор -/* B9 */ DW FN_NO -/* BA */ DW FN_NO -/* BB */ DW FN_NO -/* BC */ DW FN_NO -/* BD */ DW FN_NO -/* BE */ DW FN_NO -/* BF */ DW FN_NO -; Cx -/* C0 */ DW EMM.GetMemSize ; получить данные об объеме памяти и кол-во своб. стр. -/* C1 */ DW EMM.InitMem ; инициализация распределения памяти -/* C2 */ DW EMM.GetMem ; получить блок памяти -/* C3 */ DW EMM.FreeMem ; освободить блок памяти -/* C4 */ DW EMM.GetMemPage ; получить номер страницы в блоке памяти -/* C5 */ DW EMM.GetMemBlkPages ; получить список страниц блока памяти -/* C6 */ DW EMM.GetBanksPorts ; получить адреса портов окон -/* C7 */ DW EMM.GetMemPageNext ; получить следующую страницу блока -/* C8 */ DW BLK_RD_WR ; функция чтения/записи в блок памяти -/* C9 */ DW BLK_TO_RAMD ; назначить блок RAM-Disk-у -/* CA */ DW RAMD_CLEAR ; освободить RAM-Disk -/* CB */ DW RAMD_TO_DRV ; назначить RAM-Disk на дисковод -/* CC */ DW FDD_TO_DRV ; назначить REAL_DRIVE на дисковод -/* CD */ DW HDD_TO_DRV ; назначить HDD на дисковод -/* CE */ DW GET_RAMD_ST ; получить тип назначения на RAM-Disk -/* CF */ DW GET_DRV_ST ; получить тип назначения на дисковод -; Dx -/* D0 */ DW FN_LIB -/* D1 */ DW FN_LIB -/* D2 */ DW FN_LIB -/* D3 */ DW FN_LIB -/* D4 */ DW FN_LIB -/* D5 */ DW FN_LIB -/* D6 */ DW FN_LIB -/* D7 */ DW FN_LIB -/* D8 */ DW FN_LIB -/* D9 */ DW FN_LIB -/* DA */ DW FN_LIB -/* DB */ DW FN_LIB -/* DC */ DW FN_LIB -/* DD */ DW FN_LIB -/* DE */ DW FN_LIB -/* DF */ DW FN_LIB -; Ex -/* E0 */ DW LP_PRINT_LINE_DIR -/* E1 */ DW FN_NO -/* E2 */ DW FN_NO -/* E3 */ DW FN_NO -/* E4 */ DW FN_NO -/* E5 */ DW FN_NO -/* E6 */ DW FN_NO -/* E7 */ DW FN_NO -/* E8 */ DW FN_SEND_BYTE ; послать байт через PC_link -/* E9 */ DW FN_RESEIVE_B ; принять байт через PC_link -/* EA */ DW FN_KBD_OUT ; послать байт в клавиатуру -/* EB */ DW FN_NO -/* EC */ DW FN_NO -/* ED */ DW FN_CRIPT -/* EE */ DW AY8910 -/* EF */ DW FN_VERSION -; Fx -/* F0 */ DW SPRINTER_1 -/* F1 */ DW SPRINTER_2 -/* F2 */ DW FN_SINC -/* F3 */ DW SPRINTER_ALL -/* F4 */ DW DCP_FN0 -/* F5 */ DW CMOS_TEST -/* F6 */ DW CMOS_RD -/* F7 */ DW CMOS_WR -/* F8 */ DW SET_ROM_PAGES -/* F9 */ DW READ_PORTS ; !TODO -/* FA */ DW WRITE_PORTS ; !TODO -/* FB */ DW GOTO_SPEC ; Goto Spectrum! -/* FC */ DW FN_NO -/* FD */ DW FN_RESET -/* FE */ DW FN_NO ; SAVE_AUTOSTART -/* FF */ DW FN_VERSION - -EXP_FNS: ; Вход в функцию из DOS - POP AF - CALL APIfrom80toFF ; !TEST new_api - CALL DOS_ON - JP EXP_FNS_RET - -;************************************ -; Вход в функцию по RST18 и RST8 -EXP_FNS_RST18: - BIT 7,C - JR NZ,APIfrom80toFF ; !TEST new_api - ;.APIfrom40to5F: - BIT 6,C - RES 6,C - JP NZ,EXP_HDD_NEW - SCF - RET -;********************************** - -;----------------------------------------------------------------------- -FN_CRIPT: - DEC B - SCF - RET NZ - LD HL,(ROM_NUMBER.part1) ;rdlow-ok - LD A,(ROM_NUMBER.part2) ;rdlow-ok - LD BC,(BoardID.start) ;rdlow-ok - LD DE,(BoardID.end) ;rdlow-ok - AND A - RET -; BoardID_start old address #312A -; BoardID_end old address #312D -;----------------------------------------------------------------------- - -;********************************** -;!!!!! глянуть -; START_DI: -; PUSH AF -; LD A,R -; JP PE,XX_DI -; LD A,R -; XX_DI: LD A,#80 -; JP PE,XX_DI2 -; XOR A -; XX_DI2: LD R,A -; DI -; POP AF -; RET - -; END_DI: PUSH AF -; LD A,R -; BIT 7,A -; JR Z,XX_DI3 -; EI -; POP AF ; PE -; RET - -; XX_DI3: DI -; POP AF ; PO -; RET -;********************************** - - -APIfrom80toFF: - PUSH HL - LD L,C - SLA L - LD H,high TAB_FNS - LD C,(HL) // LD A,(HL) - INC L - LD H,(HL) - LD L,C // LD L,A - EX (SP),HL - RET - -;! ! ! ! ! ! ! ! -; !TODO сделать -READ_PORTS: -WRITE_PORTS: -FN_NO: SCF - RET -;! ! ! ! ! ! ! ! - -; ????? может переделать вход? -; CALL from 3D13h! -; in A - page, B - new ROM-page -; out B - old ROM-page -SET_ROM_PAGES: - EX AF,AF' - LD A,CNF_0 - OUT (SYS_PORT.ON),A - - LD C,SLOT2 ; получить страницу - IN D,(C) - - LD A,DCP_PAGE ; установить новую - OUT (C),A - - LD A,(#8000) ; сохранить то что было - LD L,A - LD A,(#8200) - LD H,A - EX AF,AF' ; страница - - LD (#8000),A ; установить порт ROM TR-DOS - LD (#8200),A - - EX AF,AF' - LD A,B - LD BC,0 - EX AF,AF' - - IN A,(C) - - EX AF,AF' - OUT (C),A ; установить новый TR-DOS - EX AF,AF' - - LD B,A - LD A,L - LD (#8000),A ; вернуть порт - LD A,H - LD (#8200),A ; вернуть порт - - LD C,SLOT2 - LD A,SYS_PAGE - OUT (C),A - LD A,(SYS_PAGE.CONFIG_DE-#4000) - OUT (C),D ; вернуть страницу - OUT (SYS_PORT.ON),A - - AND A - RET -;TAB_SIZE EQU $-TAB_FNS - -;***************************************** - -;***************************************** -; Функция дешифратора портов. -; HL - адрес -; DE - маска - 0 изменяемые биты, 1 неизменяемые -; B - порт -; -; ALL STACKS, DI -;***************************************** -DCP_FN0: ; !FIXIT запоминать тут состояние прерываний и вырубать - AND A - JP Z,PORTS_INIT - - PUSH IX - LD IX,.RET_DCP_FN0 - - IN A,(SLOT3) - EX AF,AF' - LD A,DCP_PAGE - OUT (SLOT3),A - - JR DCP_FN0M - -.RET_DCP_FN0: - EX AF,AF' - OUT (SLOT3),A - AND A - POP IX -; !FIXIT восстанавливать прерывания - RET - -;-----------------------------------------------------------------------; -; Функция дешифратора портов. -; HL - адрес -; DE - маска - 0 изменяемые биты, 1 неизменяемые -; B - порт -DCP_FN0M: - LD A,L - AND E - LD L,A - - LD A,H - AND D -; AND #3F - OR #C0 - LD H,A - - LD A,D - OR #C0 - LD D,A - -.loop: LD (HL),B - - LD A,L ; замаскировать неизменяемые биты 1-ми - OR E ; для прохождения переноса - INC A ; увеличить адрес - JR Z,.carry ; возник перенос - - OR E - XOR E ; обнулить неизменяемые биты - LD C,A ; изменяемая часть - - LD A,L - AND E ; выделить неизменяемую - OR C - LD L,A ; добавить изменяемую часть - - JR .loop ; цикл - -.carry: ; A = 0 -; OR E -; XOR E -; LD C,A - LD A,L ; забить изменяемые биты нулями - AND E -; OR C - LD L,A - - LD A,H ; замаскировать неизменяемые биты 1-ми - OR D ; для прохождения переноса - INC A ; увеличить адрес - JR Z,.exit - - OR D - XOR D - LD C,A ; изменяемая часть - - LD A,H - AND D ; выделить неизменяемую - OR C - LD H,A ; добавить изменяемую часть - JR .loop - -.exit: JP (IX) -;-----------------------------------------------------------------------; - - -; RAM-Disk A, BLK - B -BLK_TO_RAMD: - CP SYS_PAGE.RAMD_KEYS.NUM - CCF - RET C - - PUSH HL - LD L,A - - IN A,(SLOT2) - LD C,A - LD A,SYS_PAGE - OUT (SLOT2),A - LD A,L - LD HL,SYS_PAGE.RAMD_KEYS-#4000 - ADD A,L - LD L,A - LD A,(HL) ; ключ блока - AND A - JR NZ,BLK_BUSY ; RAM-Disk занят - ошибка - LD (HL),B - - LD A,C - OUT (SLOT2),A - - LD A,B - AND A - POP HL - RET - -BLK_BUSY: - LD A,C - OUT (SLOT2),A - - SCF - POP HL - RET - -; RAM-Disk A -RAMD_CLEAR: - CP SYS_PAGE.RAMD_KEYS.NUM - CCF - RET C - - PUSH HL - LD L,A - - IN A,(SLOT2) - LD C,A - LD A,SYS_PAGE - OUT (SLOT2),A - LD A,L - LD HL,SYS_PAGE.RAMD_KEYS-#4000 ; RAM-Disk свободен - ADD A,L - LD L,A - LD B,A ; запомнить удаляемый рамдиск - LD A,(HL) - AND A - JR Z,BLK_BUSY ; возврат с ошибкой - LD (HL),0 - LD A,C - OUT (SLOT2),A - - AND A - POP HL - RET - -; RAM-Disk A, DRV - B -RAMD_TO_DRV: - CP SYS_PAGE.RAMD_KEYS.NUM - CCF - RET C - LD C,A - LD A,B - CP 4 - CCF - RET C - - LD HL,SYS_PAGE.DISK_TYPE-#4000 - LD L,B - - IN A,(SLOT2) - LD B,A - LD A,SYS_PAGE - OUT (SLOT2),A - LD A,C - ADD A,4 - LD (HL),A - LD A,B - OUT (SLOT2),A - AND A - RET - -; Disk A, DRV - B -FDD_TO_DRV: - CP 4 - CCF - RET C - LD C,A - - LD A,B - CP 4 - CCF - RET C - - LD HL,SYS_PAGE.DISK_TYPE-#4000 - LD L,B - - IN A,(SLOT2) - LD B,A - LD A,SYS_PAGE - OUT (SLOT2),A - LD (HL),C - LD A,B - OUT (SLOT2),A - - AND A - RET - -; HDD A, DRV - B -HDD_TO_DRV: - AND 0FH - LD C,A - LD A,B - CP 4 - CCF - RET C - - LD HL,SYS_PAGE.DISK_TYPE-#4000 - LD L,B - - IN A,(SLOT2) - LD B,A - LD A,SYS_PAGE - OUT (SLOT2),A - LD A,C - ADD A,40H - LD (HL),A - LD A,B - OUT (SLOT2),A - - AND A - RET - -; Вход: -; A - RAM Disk ID -; Выход: -; A - Number (0..15) -; GET_RAMD_NUM: -; EX AF,AF' -; IN A,(SLOT2) -; EX AF,AF' -; LD BC,SYS_PAGE * 256 + SLOT2 -; OUT (C),B - -; LD HL,SYS_PAGE.RAMD_KEYS-#4000 -; LD BC,SYS_PAGE.RAMD_KEYS.NUM -; CPIR - -; EX AF,AF' -; OUT (SLOT2),A -; EX AF,AF' - -; SCF -; RET PE - -; DEC L -; LD A,L -; SUB low SYS_PAGE.RAMD_KEYS -; RET - -; на выходе при А = 0 должен быть установлен флаг Z -GET_RAMD_ST: ; DSS надеется, что эта функция не грохает DE - CP SYS_PAGE.RAMD_KEYS.NUM - CCF - RET C - - PUSH BC - - LD HL,SYS_PAGE.RAMD_KEYS-#4000 - ADD A,L - LD L,A - - IN A,(SLOT2) - LD B,A - LD A,SYS_PAGE - OUT (SLOT2),A - LD C,(HL) - LD A,B - OUT (SLOT2),A - LD A,C - POP BC - AND A - RET - -GET_DRV_ST: - CP 4 - CCF - RET C - - PUSH BC - - LD HL,SYS_PAGE.DISK_TYPE-#4000 - ADD A,L - LD L,A - - IN A,(SLOT2) - LD B,A - LD A,SYS_PAGE - OUT (SLOT2),A - LD C,(HL) - LD A,B - OUT (SLOT2),A - - LD A,C - - POP BC - - AND A - RET - -;*********************************************** -; ????? чё за херня про бейсик? тут не то ниже -; -; CMOS - 35h,36h - установки бейсика -; -;*********************************************** -CMOS_EMU_WR: - PUSH DE - - LD C,SLOT3 - IN B,(C) - LD E,SYS_PAGE - OUT (C),E - LD E,D - LD D,#FF - LD (DE),A - OUT (C),B - - POP DE - RET - -; запись в CMOS -CMOS_WR: - CALL CMOS_TEST - JR C,CMOS_EMU_WR -XWR_CMOS: - LD BC,CMOS.Port.Address.Write - OUT (C),D - LD BC,CMOS.Port.Data.Write - OUT (C),A - RET - -CMOS_EMU_RD: - PUSH DE - - LD C,SLOT3 - IN B,(C) - LD E,SYS_PAGE - OUT (C),E - LD E,D - LD D,#FF - LD A,(DE) - OUT (C),B - - POP DE - RET - -; чтение из CMOS -CMOS_RD: - CALL CMOS_TEST - JR C,CMOS_EMU_RD -XRD_CMOS: - LD BC,CMOS.Port.Address.Write - OUT (C),D - LD BC,CMOS.Port.Data.Read - IN A,(C) - RET - -CMOS_TEST: - - PUSH DE - PUSH BC - PUSH AF - - LD D,3FH ; !HARDCODE - CALL XRD_CMOS - LD E,A - CPL - CALL XWR_CMOS - CALL XRD_CMOS - CPL - CP E - JR NZ,CMOS_ERR - LD A,E - CALL XWR_CMOS - - POP AF - POP BC - POP DE - AND A - RET - -CMOS_ERR: - LD A,E - CALL XWR_CMOS - POP AF - POP BC - POP DE - SCF - RET - -; -;DE - куда - страница открыта! -;BC - сколько -;HL - буфер -; -; PUSH BC -; LD H,D -; LD L,E -; ADD HL,BC -; JR C,CUT -; LD HL,BUFER -; LDIR -; POP BC -; RET -;CUT: -; PUSH HL -; LD A,L -; LD L,C -; LD C,A -; LD A,H -; LD H,B -; LD B,A -; -; AND A -; SBC HL,BC -; LD B,H -; LD C,L -; LD HL,BUFER -; LDIR -; CALL NEXT_BANK -; POP BC -; LD A,B -; OR C -; JR Z,LAB -; LDIR -;LAB: POP BC -; RET -; - -FN_TURBO: - CP 2 - JR Z,.FN_TB_ONOFF - CP 3 - JR Z,.FN_TB_ONOFF - CP #12 - JR Z,.SET_FDD_720 - CP #13 - JR Z,.SET_FDD_1440 - SCF - RET - -;!FIXIT меняем плотность - меняем в системной странице инфу об этом -.SET_FDD_720: - LD A,1 - OUT (#BD),A ; !HARDCODE - AND A - RET -;!FIXIT меняем плотность - меняем в системной странице инфу об этом -.SET_FDD_1440: - LD A,#21 - OUT (#BD),A ; !HARDCODE - AND A - RET - -.FN_TB_ONOFF: - LD C,A - IN A,(SLOT3) - LD B,A - LD A,SYS_PAGE - OUT (SLOT3),A - LD DE,(SYS_PAGE.CONFIG_DE) - LD A,E - AND #FC - OR C - LD E,A - OUT (SYS_PORT.ON),A - LD (SYS_PAGE.CONFIG_DE),DE - LD A,B - OUT (SLOT3),A - AND A - RET - - -; разделить блок памяти на два блока -; A - блок, B - длина первого блока после разделения -; выход: A - блок 1, B - блок 2 -EMM.DivMemBlocks: - INC B - DEC B - SCF - RET Z - DEC B - LD E,A - CALL EMM.GetMemPage ; получить номер страницы блока - RET C - LD D,A - - IN A,(SLOT2) - EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT2),A - - LD H,high (SYS_PAGE.RAMD_FAT - #4000) - LD L,D - LD A,(HL) - LD (HL),0FFH - LD B,A - - EX AF,AF' - OUT (SLOT2),A - - LD A,E - AND A - RET - -; слить два блока памяти в один -; А - блок 1, B - блок 2 -; выход: А - блок -EMM.MergeMemBlocks: - LD E,A - IN A,(SLOT2) - EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT2),A - LD H,high (SYS_PAGE.RAMD_FAT - #4000) - LD L,E - LD C,B - LD B,0 -EMM_ADD_L: - LD A,(HL) - AND A - JR Z,EMM_ADD_ERR - CP 0FFH - JR Z,EMM_ADD_NEXT - LD L,A - DJNZ EMM_ADD_L -EMM_ADD_ERR: - EX AF,AF' - OUT (SLOT2),A - SCF - RET - -EMM_ADD_NEXT: - LD A,C - AND A - JR Z,EMM_ADD_ERR - LD (HL),A - EX AF,AF' - OUT (SLOT2),A - AND A - LD A,E - RET -; - - - diff --git a/src/bios/backup/EXP_HDD.as b/src/bios/backup/EXP_HDD.as deleted file mode 100644 index 7e2c1a3..0000000 --- a/src/bios/backup/EXP_HDD.as +++ /dev/null @@ -1,824 +0,0 @@ - -; -; DISPLAY "HDD utility" -/* -P_HD_CS HDW_DRV #4152 -P_CMD HDW_COM #4153 -P_HDST HDR_CTL #4053 -P_S_CNT HDW_CNT #0152 -*/ -;HDD_TYPE EQU 1 ; ????? чё это??? - - MACRO WAIT_HDD -.loop: - LD BC,IDE.Read.Status - IN A,(C) - BIT IDE.ControlBit.Busy,A - JR NZ,.loop - ENDM - -;************************************** -;!TEST не нужно если new_api_table -EXP_HDD_NEW: - PUSH AF - LD A,C - CP #10 - ;JR C,EXP_4X.HDD_CMD - JR C,HDD_CMD.4x - POP AF - JP EXP_HDD ; !FIXIT дальше в ROM будут опять проверки старших битов рег. C, уйти как-то от этого - -; MODULE EXP_4X -; !TODO оптимизировать HD_CMD_X -; C - COMAND ( 5 - RD, 6 - WR ) -; 0 - INIT, 1 - DIAG -;HDD_CMD: -;!TEST не нужно если new_api_table -HDD_CMD.4x: - LD A,C ; !!!!! можно убрать, в A и так то, что в C - - AND A - JP Z,FN_HDD_INIT ; #40 Инициализация винчестера - DEC A - JP Z,FN_HDD_RECAL ; #41 Рекалибровка винчестера - DEC A - JP Z,FN_HDD_TEST_IDE ; #42 Тест наличия интерфейса IDE - DEC A - JP Z,FN_HDD_PREPARE ; #43 Подготовка винчестера к операции чтения/записи - DEC A - JP Z,FN_HDD_READ_BPB ; #44 Читать BPB первого раздела - DEC A - JP Z,FN_HDD_READ ; #45 Читать сектора с винчестера - DEC A - JP Z,FN_HDD_WRITE ; #46 Писать сектора на винчестер - DEC A - JP Z,FN_HDD_PART ; #47 set IDE number (Настройка партиций и master/slave)??? - DEC A - JP Z,FN_HDD_READ_NEXT ; #48 Читать следующий сектор (ONLY FOR LBA!) - - POP AF ;!TEST не нужно если new_api_table - SCF - RET -;======================================= - -;-----------------------------------[OK] -HD_BPB_PREP: - LD D,A - IN A,(SLOT3) - EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT3),A - LD A,(SYS_PAGE.HD_IDF_ADR.sectors) - LD E,A - EX AF,AF' - OUT (SLOT3),A - LD A,D - LD D,#00 - LD IX,#0000 - LD B,#01 -;--------------------------------------- - -;-----------------------------------[OK] -HD_PREPARE: - PUSH AF - PUSH HL - CALL HD_CALC_SECS - JR NC,HD_PREP_L1 - POP HL - POP AF - SCF - RET -;--------------------------------------- - -;-----------------------------------[OK] -HD_PREP_L1: - LD A,B - LD BC,IDE.Write.Counter ; Установить число секторов для записи - OUT (C),A - - IF IDE_Optimization - INC C ; IDE.Write.Sector - OUT (C),L ; СЕКТОР - INC C ; IDE.Write.CylinderLow - OUT (C),E ; дорожка low - INC C ; IDE.Write.CylinderHigh - OUT (C),D - ELSE - LD BC,IDE.Write.Sector - OUT (C),L ; СЕКТОР - LD BC,IDE.Write.CylinderLow - OUT (C),E ; дорожка low - LD BC,IDE.Write.CylinderHigh - OUT (C),D ; дорожка high - ENDIF - - LD BC,IDE.Read.Control -; DEC B - IN A,(C) - AND #F0 ; !!!!! посмотреть - OR H - INC B ; IDE.Write.DriveCtrl - - OUT (C),A - - POP HL ; BUFER & PAGE - POP AF - AND A - RET -;--------------------------------------- - - -NEXT_ADD_SEC: - PUSH AF - - LD A,B - LD BC,IDE.Write.Counter ; Установить число секторов для записи - OUT (C),A - - IF IDE_Optimization - DEC B - INC C - IN A,(C) ; IDE.Read.Sector - ADC A,E - INC B - OUT (C),A ; IDE.Write.Sector - - DEC B - INC C - IN A,(C) ; IDE.Read.CylinderLow - ADC A,D - INC B - OUT (C),A ; IDE.Write.CylinderLow - - DEC B - INC C - IN A,(C) ; IDE.Read.CylinderHigh - ADC A,0 - INC B - OUT (C),A ; IDE.Write.CylinderHigh - - LD BC,IDE.Read.Control - IN A,(C) - ELSE - LD BC,IDE.Read.Sector - IN A,(C) - ADC A,E - INC B - OUT (C),A ; IDE.Write.Sector - - LD BC,IDE.Read.CylinderLow - IN A,(C) - ADC A,D - INC B - OUT (C),A ; IDE.Write.CylinderLow - - LD BC,IDE.Read.CylinderHigh - IN A,(C) - ADC A,0 - INC B - OUT (C),A ; IDE.Write.CylinderHigh - - LD BC,IDE.Read.Control - IN A,(C) - ENDIF - - LD D,A - ADC A,0 - AND #0F - LD E,A - LD A,D - AND #F0 - OR E - INC B - OUT (C),A ; ????? HEADS?! IDE.Write.DriveCtrl - - POP AF - RET - - -;-----------------------------------[OK] -FN_HDD_PREPARE: ; ПОДГОТОВКА К ВНЕШНИМ ОПЕРАЦИЯМ R/W - POP AF - AND A - INC B - DEC B - RET Z - - CALL HD_WAIT - RET C - - CALL HD_PREPARE - RET C - - EXX - LD C,SLOT3 - IN B,(C) - EXX - OUT (SLOT3),A - EX AF,AF' - - SAFE_PORTY - - LD BC,IDE.Write.Command ; ????? - LD A,#20 ; ????? -; OUT (C),A - AND A ; ????? - - RET -;--------------------------------------- - -;-----------------------------------[OK] -FN_HDD_READ_BPB: - POP AF - CALL HD_WAIT - RET C - CALL HD_BPB_PREP - RET C - - JR HD_RD_L1 -;--------------------------------------- - - -; FOR LBA ONLY - NEXT_READ -FN_HDD_READ_NEXT: -; HL - bufer, A - page -; B - numer of sectors -; DE - add_par (next+DE) (d.b. 1 for NEXT) - POP AF - AND A - INC B - DEC B - RET Z ; ret if 0 sectors - CALL HD_WAIT - RET C - CALL NEXT_ADD_SEC - JR HD_RD_L1 - - -;-----------------------------------[OK] -FN_HDD_READ: - POP AF ; HL - BUFER, A - PAGE !!! - -HD_RD_CMD: - AND A - INC B - DEC B - RET Z - CALL HD_WAIT - RET C - - CALL HD_PREPARE - RET C - -HD_RD_L1: - EXX - LD C,SLOT3 - IN B,(C) - EXX - OUT (SLOT3),A - EX AF,AF' - - SAFE_PORTY - - LD BC,IDE.Write.Command - LD A,#20 - OUT (C),A - -HD_RD_L2: - - WAIT_HDD - - BIT IDE.ControlBit.DataRequest,A - JR NZ,HD_READ_CONT - - ZERO_PORTY - -HD_RET: - EXX - OUT (C),B - EXX - LD BC,IDE.Read.Error - IN A,(C) - AND A - SCF - RET NZ - - EX AF,AF' - AND A - RET -;--------------------------------------- - -;-----------------------------------[OK] -HD_READ_CONT: - LD BC,IDE.Read.Data - -.loop_read1: - DUP 16 - INI ; всего 16 раз INI - оптимально. - EDUP - JP NZ,.loop_read1 -.loop_read2: - DUP 16 - INI ; всего 16 раз INI - оптимально. - EDUP - JP NZ,.loop_read2 - - LD A,H - OR L - JR NZ,HD_RD_L2 - - LD A,SYS_PAGE - OUT (SLOT3),A - EX AF,AF' - LD HL,SYS_PAGE.RAMD_FAT - LD L,A - LD A,(HL) - OUT (SLOT3),A - EX AF,AF' - LD HL,#C000 ; !!!!! - JR HD_RD_L2 -;--------------------------------------- - -;-----------------------------------[OK] -FN_HDD_WRITE: - POP AF ; HL - BUFER, A - PAGE !!! - -HD_WR_CMD: - AND A - INC B - DEC B - RET Z - - CALL HD_WAIT - RET C - CALL HD_PREPARE - RET C - - EXX - LD C,SLOT3 - IN B,(C) - EXX - OUT (SLOT3),A - EX AF,AF' - - LD BC,IDE.Write.Command - LD A,#30 - OUT (C),A - -HD_WR_L2: - WAIT_HDD - - BIT IDE.ControlBit.DataRequest,A - JP Z,HD_RET - -; IF HDD_TYPE = 1 - LD BC,IDE.Write.Data - LD D,32 -HD_WR_LOOP: - DUP 16 - OUTI ; всего 16 раз OUTI - оптимально. - EDUP - - DEC D - JP NZ,HD_WR_LOOP -/* - ELSE - LD BC,P_DATS+#100 - LD D,64 -HD_WR_LOOP: - DUP 4 - INC HL - OUTI - DEC HL - DEC HL - OUTI - INC HL - EDUP - - DEC D - JR NZ,HD_WR_LOOP - ENDIF -*/ - LD A,H - OR L - JR NZ,HD_WR_L2 - - LD A,SYS_PAGE - OUT (SLOT3),A - EX AF,AF' - LD HL,SYS_PAGE.RAMD_FAT - LD L,A - LD A,(HL) - OUT (SLOT3),A - EX AF,AF' - LD HL,#C000 ;!!!!! - JR HD_WR_L2 -;--------------------------------------- - -;-----------------------------------[OK] -FN_HDD_RECAL: - POP AF -HD_CMD1_EX: - LD A,#A0 - LD BC,IDE.Write.DriveCtrl - OUT (C),A - LD A,#90 ; DIAGNOSTICS - CALL HD_CMD_EXE - AND A - BIT IDE.ControlBit.Error,A - RET Z - LD BC,IDE.Read.Error - IN A,(C) - CP 1 ; !!!!! глянуть - RET Z - SCF - RET -;--------------------------------------- - -;-----------------------------------[OK] -FN_HDD_TEST_IDE: - POP AF - LD E,#00 - LD BC,IDE.Write.DriveCtrl - LD A,#A0 ; !!!!! глянуть - OUT (C),A - - CALL TEST_HDD_DRV - - JR NZ,NO_HDD1 - SET 0,E -NO_HDD1: - LD BC,IDE.Write.DriveCtrl - LD A,#B0 ; !!!!! глянуть - OUT (C),A - - CALL TEST_HDD_DRV - - JR NZ,NO_HDD2 - SET 1,E -NO_HDD2: - LD A,E - AND A - SCF - RET Z ; HDD absent ! - AND A - RET -;--------------------------------------- - - -;-----------------------------------[DIFFERENT] -; Не должна портить регистр E!!! -TEST_HDD_DRV: -; EXP_HDD.ASM variant - LD HL,#01FE ; ????? - LD BC,IDE.Write.Counter - OUT (C),L - IF IDE_Optimization - INC C - OUT (C),H ; IDE.Write.Sector - - DEC C - INC B - IN A,(C) ; ????? IDE.Write.Counter+#100 - CP L - RET NZ - INC C - - ELSE - LD BC,IDE.Write.Sector - OUT (C),H - LD BC,IDE.Write.Counter+#100 - IN A,(C) - CP L - RET NZ - LD BC,IDE.Write.Sector+#100 - ENDIF - - IN A,(C) ; ????? IDE.Write.Sector+#100 - CP H - RET -/* -TEST_HDD_DRV: -; EXTENDED.ASM variant - LD HL,#00FF ;???!!!! - LD BC,IDE.Write.CylinderLow - OUT (C),L - IF IDE_Optimization - INC C - OUT (C),H ; IDE.Write.CylinderHigh - - INC B - DEC C - IN A,(C) ; ????? Тут регистр BC = #0254 - что за порт такой и что оттуда прочитается? - CP L - RET NZ - INC C - - ELSE - LD BC,IDE.Write.CylinderHigh - OUT (C),H - LD BC,#0254 ;???!!!! - IN A,(C) - CP L - RET NZ - LD BC,#0255 ;???!!!! - ENDIF - - IN A,(C) ; ????? Тут регистр BC = #0255 - что за порт такой и что оттуда прочитается? - CP H - RET -*/ -;--------------------------------------- - - -;-----------------------------------[OK] -FN_HDD_INIT: - POP AF - LD BC,IDE.Write.DriveCtrl - LD A,#A0 - OUT (C),A - CALL TEST_HDD_DRV - JR NZ,HD_ABSENT -HD_C0_L3: - WAIT_HDD - - LD BC,IDE.Write.Command - LD A,#EC ; !HARDCODE - OUT (C),A - - WAIT_HDD - - BIT IDE.ControlBit.DataRequest,A - JR NZ,HD_C0_L2 - SCF - RET -;--------------------------------------- - -;-----------------------------------[OK] -HD_ABSENT: - LD BC,IDE.Write.DriveCtrl - LD A,#B0 ; !HARDCODE - OUT (C),A - CALL TEST_HDD_DRV - JR Z,HD_C0_L3 - SCF - RET -;--------------------------------------- - -;-----------------------------------[OK] -HD_C0_L2: - LD BC,IDE.Read.Data - LD HL,SYS_PAGE.HD_IDF_ADR - IN A,(SLOT3) - LD D,A - LD A,SYS_PAGE - OUT (SLOT3),A - INIR - INIR - LD A,(SYS_PAGE.HD_IDF_ADR.sectors) ; число секторов - LD C,A - LD HL,0 - LD B,H - LD A,(SYS_PAGE.HD_IDF_ADR.heads) ; число головок -.loop: - ADD HL,BC - DEC A - JR NZ,.loop - LD (SYS_PAGE.HD_IDF_ADR.sec_cyl),HL - - WAIT_HDD - - LD BC,IDE.Read.Control -; DEC B - IN A,(C) - AND #10 - LD B,A - LD A,(SYS_PAGE.HD_IDF_ADR.heads) ; число головок - - DEC A - AND #0F - OR #A0 - OR B - - LD H,A - LD A,(SYS_PAGE.HD_IDF_ADR+99) ; ????? LBA? - BIT 1,A - JR Z,HD_C0_NO_LBA - SET 6,H - -HD_C0_NO_LBA: - LD BC,IDE.Write.DriveCtrl - OUT (C),H - - LD A,(SYS_PAGE.HD_IDF_ADR.sectors) ; число секторов - - LD BC,IDE.Write.Counter - OUT (C),A - LD A,D - OUT (SLOT3),A - - LD A,#91 ; SET HDD PARAMETERS - CALL HD_CMD_EXE - RET - -; RET C -; LD A,1FH ; RECALIBRATE -; CALL HD_CMD_EXE -; RET -;--------------------------------------- - -;-----------------------------------[OK] -HD_CMD_EXE: - CALL HD_WAIT - RET C - LD BC,IDE.Write.Command - OUT (C),A -HD_WAIT: - PUSH DE - PUSH BC - PUSH AF - LD DE,0 -HD_WAIT1: - LD BC,IDE.Read.Status - IN A,(C) - BIT IDE.ControlBit.Busy,A - JR Z,HD_W_EXIT - DEC DE - LD A,D - OR E - JR NZ,HD_WAIT1 - POP AF - POP BC - POP DE - SCF - RET -;--------------------------------------- - -;-----------------------------------[OK] -HD_W_EXIT: - POP AF - POP BC - POP DE - AND A - RET -;--------------------------------------- - - -;-----------------------------------[DIFFERENT] -/* -;EXTENDED.ASM Version - -HDD_LBA: ;???!!!! - POP BC - LD L,E - LD E,D - LD D,XL - XOR A - LD H,A - RET - -HD_CALC_SECS: - LD A,XH - AND A - SCF - RET NZ ; ошибка, слишком большой HDD - - PUSH BC - LD BC,IDE.Write.DriveCtrl - DEC B - IN A,(C) - BIT 6,A - JR NZ,HDD_LBA -; POP BC ;!!!!! посмотреть -*/ - -;EXP_HDD.ASM Version -HDD_LBA: - POP BC - LD L,E - LD E,D - LD D,XL - LD A,XH - AND #0F ; XOR A ????? разобраться - LD H,A - RET - -HD_CALC_SECS: - PUSH BC - LD BC,IDE.Read.Control -; DEC B - IN A,(C) - BIT 6,A - JR NZ,HDD_LBA - POP BC ; снимаем значение для корректного ret - - LD A,XH - AND A - SCF - RET NZ ; ошибка, слишком большой HDD -;--------------------------------------- - - -;-----------------------------------[OK] -; IX,DE - абсолютный номер сектора - PUSH IX - POP HL - - IN A,(SLOT3) - LD C,A - LD A,SYS_PAGE - OUT (SLOT3),A - LD A,C - LD (SYS_PAGE.COPY_SLOT3),A - -; HL,DE - номер сектора -; BC - число секторов на цилиндре - LD BC,(SYS_PAGE.HD_IDF_ADR.sec_cyl) ; число секторов на цилиндре - LD A,16 ; HL,DE разделить на BC - SCF -DIV_LOOP: - EX DE,HL - ADD HL,HL - EX DE,HL - ADC HL,HL - - SBC HL,BC ; сравнить HL и BC - JR NC,NO_ADD ; переноса не было - +1! - ADD HL,BC - DEC A - JR NZ,DIV_LOOP - JR DIV_END -NO_ADD: - INC DE - DEC A - JR NZ,DIV_LOOP -DIV_END: -; DE - результат, HL - остаток -; DE - цилиндр - LD A,(SYS_PAGE.HD_IDF_ADR+12) ; !HARDCODE .sectors -; A - число секторов на дорожке -; HL - номер сектора в цилиндре - LD B,0 - LD C,A -; LD BC,(MS_BPB+S_P_T) ; ЧИСЛО СЕКТОРОВ НА ДОРОЖКЕ - XOR A -HD_CALC_LOOP2: - SBC HL,BC - INC A - JR NC,HD_CALC_LOOP2 - - DEC A ; A - головка - ADD HL,BC ; L - сектор - INC L - LD H,A ; HL - HEAD,SEC - - LD A,(SYS_PAGE.COPY_SLOT3) - OUT (SLOT3),A - - AND A - RET -;--------------------------------------- - - -FN_HDD_PART: - POP AF - BIT 0,A - LD A,#21 ; !HARDCODE - JR Z,IDE_1 - LD A,#01 ; !HARDCODE -IDE_1: - OUT (#BC),A ;!!!!! посмотреть - RET - -; ENDMODULE -;************************************************ - -; ????? -; DB 'HDD_DRV_END' -; Вход: -; C - команда -; 0 - INIT - входных пар нет => A - число поддерживаемых дисков. -; 1 - RESET - выбор диска A - номер диска от 0 => -; 2 - (STATUS) !!!!! TEST? -; 3 - MEDIA CHECK - A - номер диска => A = 0 - old. #FF - new (всегда #FF) !!!!! PREPARE??? -; 4 - READ BPB - A - диск HL - адрес в текущей странице. -; 5 - READ - A - диск, IX:DE сектор, HL - адрес, B - число секторов -; 6 - WRITE - '' - -; 7 - PART -; 8 - READ_NEXT -; -; ошибки - CF - A - ошибка -; -; 0 - нет ошибки -; 1 - неверная команда -; 2 - неверный номер диска -; 3 - неверный формат (не MS-DOS) -; 4 - нет готовности -; 5 - ошибка позиционирования -; 6 - сектор не найден -; 7 - ошибка CRC -; 8 - защита записи -; 9 - ошибка чтения -; 10 - ошибка записи -; 11 - ГЛЮК -; \ No newline at end of file diff --git a/src/bios/backup/EXTENDED.as b/src/bios/backup/EXTENDED.as deleted file mode 100644 index 96791b7..0000000 --- a/src/bios/backup/EXTENDED.as +++ /dev/null @@ -1,474 +0,0 @@ - -; -; It's disk drive BIOS extender for functions 5xh. -;--------------------------------------------------------------- -;Version! Description -;--------------------------------------------------------------- -; 2.32 ! Removed `DI' Disabled Interupt instruction in HDRIVER6 -; ! function load sectors. -; ! Fixed bug waiting slave device in AUTOIDE. - -;SPRINTER EQU 97 -;SPRINTER EQU 2000 -; DEVICE ZXSPECTRUM4096 - -/* -;HDD_TYPE EQU 1 - MACRO WAIT_HDD -.LL1: - LD BC,P_HDST - IN A,(C) - BIT 7,A - JR NZ,.LL1 - ENDM -*/ - -; ORG #0000 - -; INCLUDE '../VERSION.INC' -; INCLUDE '../BIOS.INC' - -;VER EQU 2 ;Version disk subsystem -;MOD EQU 40 - -;PAGE1 EQU #A2 -;PAGE2 EQU #C2 -;INT_ADRESS EQU #C124 -;INT_PAGE EQU #C126 -;INT_ID EQU #C127 -;BIOS EQU #3FD0 -; DS #3FD0,#FF - -;------------[Begin of ROM]------------- -ROM_START: - DI - HALT -;--------------------------------------- - -;--------------[checksum]--------------- - BLOCK 4-$,#FF -Check_Sum: - DB #FF,#FF,#FF,#FF ; место для контрольной суммы -;--------------------------------------- - BLOCK #10-$,#FF - RET -;--------------------------------------- - -;----------------[int]------------------ - BLOCK #38-$,#FF - -INT: - PUSH HL - PUSH BC - PUSH AF - LD C,SLOT3 - IN B,(C) - LD A,SYS_PAGE - OUT (C),A - - LD A,(SYS_PAGE.INT_ID) - CP #AA - JR Z,YESINT - OUT (C),B - JR NOINT -YESINT: - LD HL,(SYS_PAGE.INT_ADRESS) - LD A,H - OR L - LD A,(SYS_PAGE.INT_PAGE) - OUT (C),B - CALL NZ,EXTINT -NOINT: - POP AF - POP BC - POP HL - EI - RETI -;--------------------------------------- - -;----------------[NMI]------------------ - _mInfoBLOCK #66-$,#FF -NMI: - RETN -;--------------------------------------- - -;----------------[int]------------------ -EXTINT: - OR A - RET Z - LD C,SLOT1 - BIT 7,H - JR Z,L1 - LD C,SLOT2 - BIT 6,H - JR Z,L1 - LD C,SLOT3 -L1: - IN B,(C) - PUSH BC - OUT (C),A - CALL JPHL - POP BC - OUT (C),B - RET -JPHL: - JP (HL) -;--------------------------------------- - -; -;!TEST не нужно если new_api_table -HDD_FN_5x: - POP AF - CALL HDD_CMD.FN5X - JP RET_TO_EXP - - ;HD_CMD_X - ;!TEST не нужно если new_api_table -HDD_CMD_4X: - SET 6,C - CALL ToBIOS_FromEXT - RET - - - -; !TODO ; !FIXIT -; ; SCF -; ; BIT 7,C -; !FIXIT -;!TEST не нужно если new_api_table -HDD_CMD: - push af ; RET NZ - ld a,%00011111 ; BIT 6,C - sub c ; RET NZ - jp c,.exit ; BIT 5,C - pop af ; RET NZ - BIT 4,C - JP Z,HDD_CMD_4X ; 4xh functions ;C < #10 ; !TEST new_api -; 5xh functions #C0 - CD ROM, #80 - HARD DISK, #60 - RAM DISK, #00 - FLOPPY DISK -.FN5X: - RES 4,C ;C >= #10 - INC C - DEC C - JP Z,.RESERVED ;#50 - DEC C - JP Z,DRV_RESET ;#51 - Reset drive - DEC C - JP Z,DRV_READ_LONG ;#52 - Long read - DEC C - JP Z,DRV_WRITE_LONG ;#53 - Long write - DEC C - JP Z,DRV_VERIFY ;#54 - Verify sectors - DEC C - JP Z,DRV_READ ;#55 - Read sectors - DEC C - JP Z,DRV_WRITE ;#56 - Write sectors - DEC C - JP Z,DRV_DETECT ;#57 - Detect - DEC C - JP Z,DRV_GET_PAR ;#58 - Get Media parameters - DEC C - JP Z,DRV_SET_PAR ;#59 - Set Media parameters - DEC C - JP Z,DRV_VERSION ;#5A - Version number - DEC C - JP Z,.RESERVED ;#5B - DEC C - JP Z,.RESERVED ;#5C - DEC C - JP Z,.RESERVED ;#5D - DEC C - JP Z,.RESERVED ;#5E - DEC C - JP Z,DRV_CONFIG ;#5F - Configuration -.RESERVED: - LD A,1 ;!HARDCODE error code - SCF - RET -.exit: POP AF - SCF - RET - -DRV_VERSION: - LD HL,0 - LD BC,0 - LD DE,Disk_subsystem_ver_hex - AND A - RET - -DRV_CONFIG: ; ????? что за функция и куда указывает IX - IN A,(SLOT3) - PUSH AF - PUSH IY - LD A,SYS_PAGE - OUT (SLOT3),A - LD (IX+0),#04 - LD (IX+1),#00 ;FDD COUNT - LD (IX+2),#00 ;HDD COUNT - LD (IX+3),#00 ;CDD COUNT - LD (IX+4),#00 ;END CODE -;Calculating FDD devices - LD HL,FDD_INI_TABLE.FDD_0 - INC (IX+1) - LD B,8 - LD A,#FF -TFD0: - CP (HL) - INC HL - JR NZ,YYYFD0 - DJNZ TFD0 - DEC (IX+1) -YYYFD0: - LD HL,FDD_INI_TABLE.FDD_1 - INC (IX+1) - LD B,8 - LD A,#FF -TFD1: - CP (HL) - INC HL - JR NZ,YYYFD1 - DJNZ TFD1 - DEC (IX+1) -YYYFD1: -;Calculating IDE devices - LD IY,IDE.INIT_TBL_IDE0 - LD A,(IY+IDE.HDD_INIT_TABLE.DriveType) ;IDE TYPE 1-HDD, 2-CD-ROM - CP #FF - JR Z,ABSIDE0 - CP IDE.Device.HDD - JR NZ,NOT_HD0 - INC (IX+2) -NOT_HD0: - CP IDE.Device.CDROM - JR NZ,NOT_CD0 - INC (IX+3) -NOT_CD0: -ABSIDE0: - LD IY,IDE.INIT_TBL_IDE1 - LD A,(IY+IDE.HDD_INIT_TABLE.DriveType) ;IDE TYPE 1-HDD, 2-CD-ROM - CP #FF - JR Z,ABSIDE1 - CP IDE.Device.HDD - JR NZ,NOT_HD1 - INC (IX+2) - -NOT_HD1: - CP IDE.Device.CDROM - JR NZ,NOT_CD1 - INC (IX+3) -NOT_CD1: -ABSIDE1: - LD IY,IDE.INIT_TBL_IDE2 - LD A,(IY+IDE.HDD_INIT_TABLE.DriveType) ;IDE TYPE 1-HDD, 2-CD-ROM - CP #FF - JR Z,ABSIDE2 - CP IDE.Device.HDD - JR NZ,NOT_HD2 - INC (IX+2) -NOT_HD2: - CP IDE.Device.CDROM - JR NZ,NOT_CD2 - INC (IX+3) -NOT_CD2: -ABSIDE2: - LD IY,IDE.INIT_TBL_IDE3 - LD A,(IY+IDE.HDD_INIT_TABLE.DriveType) ;IDE TYPE 1-HDD, 2-CD-ROM - CP #FF - JR Z,check_exit - CP IDE.Device.HDD - JR NZ,NOT_HD3 - INC (IX+2) -NOT_HD3: - CP IDE.Device.CDROM - JR NZ,check_exit - INC (IX+3) -check_exit: - POP IY - POP AF - OUT (SLOT3),A - XOR A - RET - -DRV_RESET: - CP #10 - JP C,FDD_5x.RESET -; CP #60 -; JP C,.error -; CP #70 -; JP C,RESETR - CP #80 - JP C,.error - CP #90 - JP C,HDD_5x.RESET - CP #C0 - JP C,.error - CP #D0 - JP C,CD_5x.RESET -.error: - LD A,#AA - SCF - RET - -DRV_READ_LONG: - CP #10 - JP C,FDD_5x.LONG_READ - CP #60 - JP C,.error - CP #70 - JP C,RMD_5x.LONG_READ - CP #80 - JP C,.error - CP #90 - JP C,HDD_5x.LONG_READ - CP #C0 - JP C,.error - CP #D0 - JP C,CD_5x.LONG_READ -.error: - LD A,#AA - SCF - RET - -DRV_WRITE_LONG: - CP #10 - JP C,FDD_5x.LONG_WRITE - CP #60 - JP C,.error - CP #70 - JP C,RMD_5x.LONG_WRITE - CP #80 - JP C,.error - CP #90 - JP C,HDD_5x.LONG_WRITE -; CP #C0 -; JP C,.error -; CP #D0 -; JP C,LWRITEC -.error: - LD A,#AA - SCF - RET - -DRV_READ: - CP #10 ; !HARDCODE поназывать бы все ID - JP C,FDD_5x.READ - CP #60 - JP C,.error - CP #70 - JP C,RMD_5x.READ - CP #80 - JP C,.error - CP #90 - JP C,HDD_5x.READ - CP #C0 - JP C,.error - CP #D0 - JP C,CD_5x.READ -.error: - LD A,#AA - SCF - RET - -DRV_WRITE: - CP #10 - JP C,FDD_5x.WRITE - CP #60 - JP C,.error - CP #70 - JP C,RMD_5x.WRITE - CP #80 - JP C,.error - CP #90 - JP C,HDD_5x.WRITE -; CP #C0 -; JP C,.error -; CP #D0 -; JP C,WRITEC -.error: - LD A,#AA - SCF - RET - -DRV_VERIFY: -; CP #10 -; JP C,VERIFYD -; CP #60 -; JP C,.error -; CP #70 -; JP C,VERIFYR - CP #80 - JP C,.error - CP #90 - JP C,HDD_5x.VERIFY -; CP #C0 -; JP C,.error -; CP #D0 -; JP C,VERIFYC -.error: - LD A,#AA - SCF - RET - -DRV_DETECT: - CP #10 - JP C,FDD_5x.DETECT -; CP #60 -; JP C,.error -; CP #70 -; JP C,DETECTR -; CP #80 -; JP C,.error -; CP #90 -; JP C,DETECTH - CP #C0 - JP C,.error - CP #D0 - JP C,CD_5x.DETECT -.error: - LD A,#AA - SCF - RET - -DRV_GET_PAR: - CP #10 - JP C,FDD_5x.GETMED - CP #60 - JP C,.error - CP #70 - JP C,RMD_5x.GETMED - CP #80 - JP C,.error - CP #90 - JP C,HDD_5x.GETMED -.error: - LD A,#AA - SCF - RET - -DRV_SET_PAR: - CP #10 - JP C,FDD_5x.SETMED - CP #60 - JP C,.error - CP #70 - JP C,RMD_5x.SETMED - CP #80 - JP C,.error - CP #90 - JP C,HDD_5x.SETMED -.error: - LD A,#AA - SCF - RET -; - - INCLUDE 'src/bios/ROM/EXTENDED/FDD_DRIVER_2.asm' - INCLUDE 'src/bios/ROM/EXTENDED/RAM_DISK_DRIVER_1.asm' - INCLUDE 'src/bios/ROM/EXTENDED/HDD_DRIVER_6.asm' - INCLUDE 'src/bios/ROM/EXTENDED/CD_DRIVER_0.asm' - -;01000h SETUP - -; ORG #9000 -; INCBIN "BSETUP.BIN" -; INCLUDE "ENDROM.ASM" -; \ No newline at end of file diff --git a/src/bios/backup/ROM.as b/src/bios/backup/ROM.as deleted file mode 100644 index ffd6f9c..0000000 --- a/src/bios/backup/ROM.as +++ /dev/null @@ -1,135 +0,0 @@ -;-----------[#0000 Extended]------------ - INCLUDE 'src/bios/rom/EXTENDED/EXTENDED.asm' -;--------------------------------------- - DISPLAY " EXTENDED end addr: ", /A, $ - -;-------------[#1000 SETUP]------------- - ShowInfo 'Setup block of ROM start', 0 ; !!!!! test - -BLOCK_Setup EQU $ - - IF PACKED_MAIN - BLOCK ROM_MAP.SETUP-$,#FF - - DISP COMPILE_ADDR.SETUP - -; Depacker version -SETUP_MAIN: - LD HL,DEPACKER.UnpackedEXECaddr; точка входа в распакованном коде - PUSH HL - LD DE,DEPACKER.WorkAddr ; адрес процедуры депакера - PUSH DE - - LD HL,DEPACKER.Addr - LD BC,DEPACKER.Length - LDIR - - LD HL,DEPACKER.PackedMAIN ; где архив - LD DE,DEPACKER.UnpackAddr ; куда распаковывать - RET - -.Depacker EQU $ - ENT - -;-----------------[v] -DEPACK_DATA: - DISP DEPACKER.WorkAddr - MODULE UnPacker - INCLUDE 'src/bios/ROM/SETUP/DEHRUST.asm' ; !TODO сделать на LUA автовыбор декомпрессора и компрессора -PackedMAIN: INCBIN 'Build/Bin/temp/MAIN.PAK' - ENDMODULE - ENT -DEPACK_DATA.length EQU $-DEPACK_DATA -;-----------------[^] - - - ELSE - DISP COMPILE_ADDR.SETUP - ShowInfo 'Setup block DISP start', 1 ; !!!!! test -SETUP_MAIN: INCLUDE 'src/bios/ROM/SETUP/Main.asm' - ShowInfo 'Setup block DISP end', 1 ; !!!!! test - ENT - ENDIF - - - ShowInfo 'Setup block of ROM end', 0 ; !!!!! test -BLOCK_Setup.Length EQU $-BLOCK_Setup -;--------------------------------------- - - -;*************************************** -; -; !TODO можно оприходовать тут сколько-то байтов -; DISPLAY 'Address in ROM with ', /D, ToBIOS_FromEXT-$, ' free bytes: ',/H,$ -;*************************************** -; -;---------------[SET EXP]--------------- - _mInfoBLOCK ToBIOS_FromEXT-$,#FF ; #3FD0 -; call exp bios from setup -;RST18h: - PUSH AF - LD A,ROM.EXT ; set exp-rom to slot0 - OUT (SYS_PORT.ON),A - POP AF - RET -;--------------------------------------- - - - -;--------[ From TR-DOS to HDD part2]-------- - _mInfoBLOCK #3FD8-$,#FF -TRDOS_HD_CMD: -// JP L0107 - POP AF - CALL HDD_CMD ; !TEST new_api - JP RET_TO_TRDOS -;--------------------------------------- - - - -;-------------[SND_TEST_RET]------------- - _mInfoBLOCK #3FE0-$,#FF -SND_TEST_RET: - LD A,ROM.EXT - OUT (SYS_PORT.OFF),A -; JP SOUND_TEST - JP #0000 -;--------------------------------------- - - -;!TEST не нужно если new_api_table -;------------[HDD_5x portal]------------ -; точка входа/выхода для функций 5х из EXP - _mInfoBLOCK #3FE8-$,#FF -RET_TO_EXP: - PUSH AF - LD A,ROM.EXT - OUT (SYS_PORT.ON),A - JP HDD_FN_5x -;--------------------------------------- - - -;!FIXIT эта точка входа очень странная из страницы в страницу прыгает -;---------[ From TR-DOS to HDD ]-------- - _mInfoBLOCK #3FF0-$,255 -RET_TO_TRDOS: - PUSH AF - DI - LD A,ROM.EXT - OUT (SYS_PORT.OFF),A - JR TRDOS_HD_CMD ; тут не хватило места в 1 байт, чтоб сразу сделать JP -;--------------------------------------- - - - -;-----[???????????????????????????]----- - _mInfoBLOCK #3FF8-$,255 -A3FF8: PUSH AF - LD A,ROM.EXT - OUT (SYS_PORT.OFF),A -; !FIXIT может убрать заглушку и сделать, чтоб переключалось на EXP и дальше как в EXP_FNS_RET ? -; или своего чего-нибудь добавить. - JP #0000 -;--------------------------------------- -; $ = #4000 -;======================================= diff --git a/src/bios/exp/DCP.ASM b/src/bios/exp/DCP.ASM index 9786e82..5ab4b24 100644 --- a/src/bios/exp/DCP.ASM +++ b/src/bios/exp/DCP.ASM @@ -16,7 +16,7 @@ ; ....0..11.1110 ; WORD %00000001101110 ; - адрес ; WORD %00001001101111 ; - маска - 0 изменяемые биты, 1 неизменяемые -; BYTE Conf_port.Border_FE ; - порт +; BYTE ACEX.Border_FE ; - порт ; DCP END MARKER ; DW 0,0,0 @@ -25,126 +25,125 @@ ; ;-----------------------------------------------------------------------; -; VG93 Ports DW %00000000000111 DW %00010001101111 - DB Conf_port.VG93_1F + DB ACEX.VG93_1F DW %11010000000111 DW %11010001101111 - DB Conf_port.VG93_1F -;ok + DB ACEX.VG93_1F + DW %00000000100111 DW %00010001101111 - DB Conf_port.VG93_3F + DB ACEX.VG93_3F DW %11010000100111 DW %11010001101111 - DB Conf_port.VG93_3F -;ok + DB ACEX.VG93_3F + DW %00000001000111 DW %00010001101111 - DB Conf_port.VG93_5F + DB ACEX.VG93_5F DW %11010001000111 DW %11010001101111 - DB Conf_port.VG93_5F -;ok + DB ACEX.VG93_5F + DW %00000001100111 DW %00010001101111 - DB Conf_port.VG93_7F + DB ACEX.VG93_7F DW %11010001100111 DW %11010001101111 - DB Conf_port.VG93_7F -;ok + DB ACEX.VG93_7F + DW %00000001101111 DW %00011001101111 - DB Conf_port.VG93_State + DB ACEX.VG93_State DW %11010001101111 DW %11011001101111 - DB Conf_port.VG93_State + DB ACEX.VG93_State ; For joystick DW %00011000000111 DW %10011001101111 - DB Conf_port.JOY_VG93 + DB ACEX.JOY_VG93 DW %10011000000111 DW %11011001101111 - DB Conf_port.JOY_VG93 + DB ACEX.JOY_VG93 ; For VG93 with dos on DW %00001001101111 DW %00011001101111 - DB Conf_port.JOY_VG93 + DB ACEX.JOY_VG93 ; For VG93 with dos off DW %11011001101111 DW %11011001101111 - DB Conf_port.JOY_VG93 -;ok + DB ACEX.JOY_VG93 + DW %00000000101101 DW %11011111111111 - DB Conf_port.FDD720 + DB ACEX.FDD720 DW %11000000101101 DW %11001111111111 - DB Conf_port.FDD720 -;ok + DB ACEX.FDD720 + DW %00000000111101 DW %11011111111111 - DB Conf_port.FDD144 + DB ACEX.FDD144 DW %11000000111101 DW %11001111111111 - DB Conf_port.FDD144 + DB ACEX.FDD144 ;!FIXIT UNKNOWN PORTS--------------------------------------------------; dos on, только через BC, чтение/запись -;ok DW %10000100101101 DW %11010111111111 DB #18 -;ok + DW %10000100111101 DW %11010111111111 DB #19 -;ok + DW %10000110101101 DW %11010111111111 DB #1A ;----------------------------------------------------------------------; -;ok + DW %00000100101101 DW %11001111111111 - DB #1B + DB ACEX.ISA_CTRL DW %10000110111101 DW %11010111111111 - DB #1B + DB ACEX.ISA_CTRL DW %11000100101101 DW %11001111111111 - DB #1B -;ok + DB ACEX.ISA_CTRL + DW %00001100111101 DW %11001101111111 - DB #1C + DB ACEX.CMOS_DATA.READ DW %11001100111101 DW %11001101111111 - DB #1C -;ok + DB ACEX.CMOS_DATA.READ + DW %00000110101101 DW %11001111111111 - DB #1D + DB ACEX.CMOS_ADDR.WRITE DW %11000110101101 DW %11001111111111 - DB #1D -;ok + DB ACEX.CMOS_ADDR.WRITE + DW %00000100111101 DW %11001101111111 - DB #1E + DB ACEX.CMOS_DATA.WRITE DW %11000100111101 DW %11001101111111 - DB #1E -;ok + DB ACEX.CMOS_DATA.WRITE +; +;---------HDD[v] DW %00000001000000 DW %11000001101111 DB #20 DW %01000001000000 DW %11010001101111 DB #20 -;ok + DW %10000001000000 DW %11010001101111 DB #20 @@ -152,7 +151,6 @@ DW %11000001101111 DB #20 -;ok DW %00000001000001 DW %00010111101111 DB #21 @@ -162,7 +160,7 @@ DW %11010001000001 DW %11010111101111 DB #21 -;ok + DW %00000001000010 DW %00010111101111 DB #22 @@ -172,7 +170,7 @@ DW %11010001000010 DW %11010111101111 DB #22 -;ok + DW %00000001000011 DW %00010111101111 DB #23 @@ -182,7 +180,7 @@ DW %11010001000011 DW %11010111101111 DB #23 -;ok + DW %00000001000100 DW %00010111101111 DB #24 @@ -193,7 +191,6 @@ DW %11010111101111 DB #24 -;ok DW %00000001000101 DW %00010111101111 DB #25 @@ -204,7 +201,6 @@ DW %11010111101111 DB #25 -;ok DW %00000011000010 DW %00010111101111 DB #26 @@ -214,7 +210,7 @@ DW %11010011000010 DW %11010111101111 DB #26 -;ok + DW %00000011000011 DW %00010111101111 DB #27 @@ -224,233 +220,232 @@ DW %11010011000011 DW %11010111101111 DB #27 -;ok +;---------HDD[^] +; DW %00000011000100 DW %00010111101111 - DB Conf_port.IDE_CONTROL_3F6 + DB ACEX.IDE_CONTROL_3F6 DW %00010011000100 DW %11010111101111 - DB Conf_port.IDE_CONTROL_3F6 + DB ACEX.IDE_CONTROL_3F6 DW %11010011000100 DW %11010111101111 - DB Conf_port.IDE_CONTROL_3F6 -;ok + DB ACEX.IDE_CONTROL_3F6 + DW %00000011000101 DW %00010111101111 - DB Conf_port.IDE_STATUS_3F7 + DB ACEX.IDE_STATUS_3F7 DW %00010011000101 DW %11010111101111 - DB Conf_port.IDE_STATUS_3F7 + DB ACEX.IDE_STATUS_3F7 DW %11010011000101 DW %11010111101111 - DB Conf_port.IDE_STATUS_3F7 -;ok + DB ACEX.IDE_STATUS_3F7 + DW %00000000101100 DW %11001111111111 - DB Conf_port.IDE_CHANEL_1 + DB ACEX.IDE_CHANEL_1 DW %11000000101100 DW %11001111111111 - DB Conf_port.IDE_CHANEL_1 -;ok + DB ACEX.IDE_CHANEL_1 + DW %00000000111100 DW %11001111111111 - DB Conf_port.IDE_CHANEL_2 + DB ACEX.IDE_CHANEL_2 DW %11000000111100 DW %11001111111111 - DB Conf_port.IDE_CHANEL_2 -;ok + DB ACEX.IDE_CHANEL_2 + DW %00000010101101 DW %11001111111111 - DB Conf_port.VSYNC320 + DB ACEX.VSYNC320 DW %11000010101101 DW %11001111111111 - DB Conf_port.VSYNC320 -;ok + DB ACEX.VSYNC320 + DW %00000010111101 DW %11001111111111 - DB Conf_port.VSYNC312 + DB ACEX.VSYNC312 DW %11000010111101 DW %11001111111111 - DB Conf_port.VSYNC312 -;ok + DB ACEX.VSYNC312 + DW %00000010101100 DW %11001111111111 - DB Conf_port.RESET + DB ACEX.RESET DW %11000010101100 DW %11001111111111 - DB Conf_port.RESET -;ok + DB ACEX.RESET + DW %00000010111100 DW %11001111111111 - DB Conf_port.UNKNOWN ;!FIXIT можно пока убрать + DB ACEX.UNKNOWN ;!FIXIT можно пока убрать DW %11000010111100 DW %11001111111111 - DB Conf_port.UNKNOWN ;!FIXIT можно пока убрать -;ok + DB ACEX.UNKNOWN ;!FIXIT можно пока убрать + DW %00010000101011 DW %11010001101011 - DB Conf_port.ISA_Control -;ok + DB ACEX.ISA_Control ;!FIXIT можно пока убрать ??? + DW %00011001101110 DW %10011001101111 - DB Conf_port.ZX_Keyboard + DB ACEX.ZX_Keyboard DW %10011001101110 DW %11011001101111 - DB Conf_port.ZX_Keyboard -;ok + DB ACEX.ZX_Keyboard + DW %00001111111101 DW %00001111111111 - DB Conf_port.AY_FFFD_READ -;ok + DB ACEX.AY_FFFD_READ + DW %00001111011111 DW %11001111111111 - DB Conf_port.Kempston_Mouse + DB ACEX.Kempston_Mouse DW %11001111011111 DW %11001111111111 - DB Conf_port.Kempston_Mouse -;ok + DB ACEX.Kempston_Mouse + DW %00011001100011 DW %11011001101111 - DB Conf_port.CBL_OUT + DB ACEX.CBL_OUT DW %01010001100011 DW %11010001101111 - DB Conf_port.CBL_OUT + DB ACEX.CBL_OUT DW %10010001100011 DW %11010001101111 - DB Conf_port.CBL_OUT + DB ACEX.CBL_OUT DW %00010000000111 DW %11011000001111 - DB Conf_port.CBL_OUT + DB ACEX.CBL_OUT DW %00011000001000 DW %11011001101111 - DB Conf_port.CBL_OUT + DB ACEX.CBL_OUT DW %00010001101011 DW %10010001101111 - DB Conf_port.CBL_OUT + DB ACEX.CBL_OUT DW %10010001101011 DW %11010001101111 - DB Conf_port.CBL_OUT -;ok + DB ACEX.CBL_OUT + DW %00000001000110 DW %11001111111111 - DB Conf_port.CBL_SYS_PORT + DB ACEX.CBL_SYS_PORT DW %11000001000110 DW %11001111111111 - DB Conf_port.CBL_SYS_PORT -;ok + DB ACEX.CBL_SYS_PORT + DW %00000111111101 DW %00001111111111 - DB Conf_port.AY_FFFD_WRITE -;ok + DB ACEX.AY_FFFD_WRITE + DW %00000101111101 DW %00001111111111 - DB Conf_port.AY_BFFD -;ok + DB ACEX.AY_BFFD + DW %00000001101101 DW %10000111111111 - DB Conf_port.Scorp_1FFD + DB ACEX.Scorp_1FFD DW %11000001101101 DW %11000111111111 - DB Conf_port.Scorp_1FFD -;ok + DB ACEX.Scorp_1FFD + DW %00000011101101 DW %00100111101111 - DB Conf_port.Pent_7FFD + DB ACEX.Pent_7FFD DW %00100011101101 DW %11110111101111 - DB Conf_port.Pent_7FFD + DB ACEX.Pent_7FFD DW %11100011101101 DW %11100111101111 - DB Conf_port.Pent_7FFD + DB ACEX.Pent_7FFD DW %10000001101101 DW %11100111101111 - DB Conf_port.Pent_7FFD -;ok + DB ACEX.Pent_7FFD + DW %00000001101110 DW %00001001101111 - DB Conf_port.Border_FE -;ok + DB ACEX.Border_FE + DW %00000001010110 DW %11001111111111 - DB Conf_port.ALL_MODE + DB ACEX.ALL_MODE DW %11000001010110 DW %11001111111111 - DB Conf_port.ALL_MODE -;ok + DB ACEX.ALL_MODE + DW %00000000001001 DW %00010001101111 - DB Conf_port.PORT_Y + DB ACEX.PORT_Y DW %00010000001001 DW %11010001101111 - DB Conf_port.PORT_Y + DB ACEX.PORT_Y DW %11010000001001 DW %11010001101111 - DB Conf_port.PORT_Y -;ok + DB ACEX.PORT_Y + DW %00000001001001 DW %00010001101111 - DB Conf_port.RGMOD + DB ACEX.RGMOD DW %00010001001001 DW %11010001101111 - DB Conf_port.RGMOD + DB ACEX.RGMOD DW %11010001001001 DW %11010001101111 - DB Conf_port.RGMOD -;ok + DB ACEX.RGMOD + DW %00000000100100 DW %00000000101111 - DB Conf_port.CNF_PORT + DB ACEX.CNF_PORT ;!FIXIT можно убрать DW %00000001101100 DW %11001001101111 - DB Conf_port.SCALE + DB ACEX.SCALE DW %11000001101100 DW %11001001101111 - DB Conf_port.SCALE -;------------------------------ + DB ACEX.SCALE + -;ok DW %00000000001010 DW %00010001101111 - DB #E8 + DB ACEX.SLOT0 DW %00010000001010 DW %11010001101111 - DB #E8 + DB ACEX.SLOT0 DW %11010000001010 DW %11010001101111 - DB #E8 -;ok + DB ACEX.SLOT0 + DW %00000000101010 DW %00010001101111 - DB #E9 + DB ACEX.SLOT1 DW %00010000101010 DW %11010001101111 - DB #E9 + DB ACEX.SLOT1 DW %11010000101010 DW %11010001101111 - DB #E9 + DB ACEX.SLOT1 -;ok DW %00000001001010 DW %00010001101111 - DB #EA + DB ACEX.SLOT2 DW %00010001001010 DW %11010001101111 - DB #EA + DB ACEX.SLOT2 DW %11010001001010 DW %11010001101111 - DB #EA -;ok + DB ACEX.SLOT2 + DW %00000001101010 DW %00010001101111 - DB #F0 + DB ACEX.SLOT3 DW %00010001101010 DW %11010001101111 - DB #F0 + DB ACEX.SLOT3 DW %11010001101010 DW %11010001101111 - DB #F0 + DB ACEX.SLOT3 ; DCP END MARKER DW 0,0,0 ;-----------------------------------------------------------------------; diff --git a/src/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index 9c721ae..c92c9db 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -250,23 +250,6 @@ NO_RESTART: ; - -; -;----------------------------[ FOR ZX-MODE ]----------------------------; - IF BIOS_ZXMODE -;!HARDCODE на этот адрес #С0 прыгает в vROM Basic-48 по адресу #3CF0 -; можно попробовать переделать этот адрес там - _mInfoBLOCK #C0-$,0 -;BEGIN: -; Вход через USR 15600 -RET_FROM_BIOS_TO_BASIC48: - CALL CH_2 - CALL COMAND_LINE ; ВЫПОЛНЕНИЕ КОМАНДЫ, ЕСЛИ ЕСТЬ - ; Вход без команды - JP SW_ROM_1 ; ВОЗВРАТ В << MAIN MENU >> - ENDIF -;-----------------------------------------------------------------------; - ; ==== POST PROCs ================= MODULE POST_TEST START: @@ -283,9 +266,7 @@ POST_1_RAM_BUS: LD BC,0 LD HL,#C000 LD DE,#0055 - -.loop: - LD (HL),E +.loop: LD (HL),E INC L LD (HL),D DEC L @@ -651,7 +632,7 @@ start: ;----[перехват soft reset #EE port]----- Check_EE_Port: - LD A,Conf_port.RET_PORT + LD A,ACEX.RET_PORT LD B,0 LD C,BIOS.SET_PORTS CALL @ToBIOS_3D13 ; переустановить внутр. порт #EE @@ -757,7 +738,7 @@ Set_Default_Screen: CALL FN_SYNC.INT_DEF ; set default int ld a,128+4 ; !HARDCODE ;ld c,BIOS.FN_SYNC - ;RST ToBIOS_18 ; set default vsync + ;RST_to_BIOS_18 ; set default vsync CALL FN_SYNC ; set default vsync Setup_to_RAM: LD HL,Setup_Starter.Start @@ -976,20 +957,19 @@ init_zx_roms: IN A,(SLOT3) PUSH AF - ;!HARDCODE DI - LD A,1 + LD A,1 ;!HARDCODE OUT (SYS_PORT.ROM),A - LD A,2 + ;LD A,2 + INC A ;!HARDCODE - IF SetFullZXromLoader - LD B,6 ; zx-rom number of pages - ELSE - LD B,4 - ENDIF - -.loop: - push bc + IF SetFullZXromLoader + LD B,6 ; zx-rom number of pages + ELSE + LD B,4 + ENDIF +;!FIXIT переделать на функцию биоса для чтения ROM-DISK и перенести в него ПЗУ спектрума +.loop: push bc out (ROM.SLOT0),a or %01000000 @@ -1024,7 +1004,7 @@ init_zx_roms: LD B,#44 ; page CALL .SET_ROM - LD A,#E0 ;!HARDCODE ROM-ID - EXPANSION + LD A,#E0 ;!HARDCODE ROM-ID - BIOS LD B,#45 ; page CALL .SET_ROM @@ -1114,252 +1094,11 @@ SPECTRUM_TASK: BASIC_128: LD SP,#BFFF LD HL,RES128_PROG - LD DE,#5B00 ; запуск программы на BASIC-е. + LD DE,ZX_VARS.PRINTER_BUFFER ; запуск программы на BASIC-е. LD BC,LEN_RES128 LDIR DI - JP #5B00 ;!HARDCODE - -;-----------------------------------------------------------------------; - -;***************************************************** - -; TURBO_OFF: -; LD A,D_TBOFF -; OUT (SYS_PORT.ON),A -; RET - -; TURBO_ON: -; LD A,D_TBON -; OUT (SYS_PORT.ON),A -; RET - -; JP_HL: JP (HL) - - -;PRINT_LINE: -; LD A,(HL) -; INC HL -; CP 0FFh -; RET Z -; RST 10H -; JR PRINT_LINE - - -; JP RESET_128 - - - IF BIOS_ZXMODE -;-----------------------------------------------------------------------; -; ******* SERVICE ******* -;-----------------------------------------------------------------------; - -;------[ ДЕШИФРАЦИЯ КОМАНДНОЙ СТРОКИ,ПЕРЕДАННОЙ ДЛЯ "EXPANSION" ]-------; -COMAND_LINE: - LD HL,(#5C5D) ;!HARDCODE CH_ADR -COMAND_LOOP: - LD A,(HL) - INC HL - CP ":" - JR Z,COMAND_L1 - CP 0Dh - JR NZ,COMAND_LOOP - RET - -COMAND_L1: - LD A,(HL) - CP 0EAh ; REM !!! - RET NZ - INC HL -COMAND_OK: ; ОБНАРУЖЕНА КОМАНДА ДЛЯ 'expansion' - LD A,(HL) - INC HL - CP ':' - JP Z,MENU_S1 - CP 0Dh - JP Z,MENU_S1 - CP 'I' - JR Z,COMAND_ISD - CP 'i' - JR Z,COMAND_ISD - CP 'T' - JR Z,TASK_SWITCH - CP 't' - JR Z,TASK_SWITCH - DEC HL - POP BC - JP BASIC_MENU -MENU_S1: - POP BC - CALL SERVICE - JP SW_ROM_1 - -COMAND_ISD: - LD A,(HL) - INC HL - CP 'S' - JP Z,COMAND_ISD2 - CP 's' - JP Z,COMAND_ISD2 - RET - -COMAND_ISD2: - POP BC - CALL ISDOS - JP SW_ROM_1 - - -TASK_SWITCH: - -; *** Сохранить задачу *** - PUSH IY - PUSH IX - PUSH AF - PUSH BC - PUSH DE - PUSH HL - - EXX - EX AF,AF' - - PUSH AF - PUSH BC - PUSH DE - PUSH HL - - LD A,R - PUSH AF - LD A,I - PUSH AF - - LD A,(HL) - RLCA - RLCA - RLCA - RLCA - AND 30H ; новая задача 0..3 - LD C,A - - IN A,(SLOT3) - LD B,A ; 3-я страница текущей задачи - LD A,SYS_PAGE - OUT (SLOT3),A - - LD IX,SYS_PAGE.TASK_DATA ; данные задач - LD E,(IX) ; старая задача - LD D,0 - ADD IX,DE ; данные текущей задачи - LD E,16 - ADD IX,DE ; смещение данных в таблице задач - - LD (IX+1),B ; сохранить страницу 3 - LD HL,0 - ADD HL,SP - LD (IX+2),L ; сохранить стек задачи - LD (IX+3),H - SET 0,(IX) ; установить флаг сохраненности текущей задачи - RES 1,(IX) ; установить флаг, что задача покинута - - LD IX,SYS_PAGE.TASK_DATA - LD E,C - LD D,0 - ADD IX,DE ; новая задача - LD E,16 - ADD IX,DE ; смещение данных в таблице задач - - BIT 1,(IX) -; JR NZ,TASK_IN_WORK ; задача в работе ??? неверное завершение - ; сбрасывать или просто возвращаться - - BIT 0,(IX) ; была сохранена/нет - JR NZ,TASK_SET ; задача существует - -; задачи не было! - LD IX,SYS_PAGE.TASK_DATA - LD A,C ; задача - LD (IX),A ; установить новую задачу текущей - - JP SPECTRUM_TASK ; запустить новую задачу! -; и пока пофиг распределение памяти! - -TASK_SET: - LD IX,TASK_RESTORE - LD A,C - EXX - JP INIT_PAGES ; переключить все страницы! - -TASK_RESTORE: - EXX - LD A,SYS_PAGE - OUT (SLOT3),A - LD A,C - LD IX,SYS_PAGE.TASK_DATA - LD (IX),A ; установить новую задачу текущей - - LD E,A - LD D,0 - ADD IX,DE ; новая задача - LD E,16 - ADD IX,DE - - LD L,(IX+2) ; вспомнить стек - LD H,(IX+3) - LD SP,HL - LD A,(IX+1) ; вспомнить третью страницу - OUT (SLOT3),A - - - POP AF ; восстановить - LD I,A - POP AF - LD R,A - POP HL - POP DE - POP BC - POP AF - EX AF,AF' - EXX - POP HL - POP DE - POP BC - POP AF - POP IX - POP IY - ; вернуться в задачу - -NO_TASK: - POP BC - JP SW_ROM_1 - -; 259F - ADRESS BASIC128 - MAIN_MENU -;-----------------------------------------------------------------------; - - - -;-----------------------------------------------------------------------; -; *** UTILITES *** -;-----------------------------------------------------------------------; - -; C_0030: ; получить раб обл -; CALL_48X 0030h -; RET -C_19E8: ; очистить раб обл - CALL_48X 19E8h - RET -C_1655: ; получить пространство - CALL_48X 1655h - RET -CLS: -C_0D6B: CALL_48 #0D6B - RET -CH_2: LD A,2 -C_1601: ; OPEN CHANEL - CALL_48 #1601 - RET - - INCLUDE 'ZX_MENU.ASM' - INCLUDE 'ZX_MODE.ASM' - ENDIF + JP ZX_VARS.PRINTER_BUFFER ;-----------------------------------------------------------------------; ; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; ; @@ -1370,11 +1109,9 @@ C_1601: ; OPEN CHANEL ; ;>$< >$< >$< >$< >$< >$< [ ПЕРЕМЕЩАЕМЫЕ В ОЗУ ] >$< >$< >$< >$< >$< >$< ; - ;--------[ Программа, размещаемая с #5B00 для запуска Spectrum ]--------; -;!TODO нужна ли тут? RES128_PROG: - DISP #5B00 ;!HARDCODE SWAP_ROM + DISP ZX_VARS.PRINTER_BUFFER ;#5B00 LD A,ROM.BIOS OUT (SYS_PORT.RAM),A ; Возврат в 128k ROM LD C,SLOT3 @@ -1414,7 +1151,7 @@ RES128_PROG: LD B,#1F OUT (C),A DEC D - JP Z,0 ; 3 ВХОД В EXPANSION ??? + JP Z,0 ; 3 ВХОД В EXPANSION ??? ; XOR A @@ -1453,7 +1190,7 @@ RESTARTS_PROG: ; !TODO LDConf Start: DISP COMPILE_ADDR.SETUP_STARTER Exec: - LD A,CNF_PORT.CNF_0 + ROM.EXPANSION + LD A,CNF_PORT.CNF_0 + ROM.EXTENSION OUT (SYS_PORT.ROM),A LD HL,ROM_MAP.SETUP @@ -1556,8 +1293,12 @@ PROG_NO_ROM.size EQU $-PROG_NO_ROM ;-------------------[] ;-----------------------------------------------------------------------; ;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<; +; + +; +; !FIXIT сделать эти фиксированные адреса отдельным файлом и с IF/ELSE и подключать их потом куда надо. ; ;????? посмотреть ;----------------------------------------------------------------------; @@ -1642,7 +1383,7 @@ DOS_ON: NOP ;*************************************** _mInfoBLOCK #3D13-$,#FF NOP - JP #18 + JP ToBIOS_18 ;*************************************** ;*************************************** @@ -1653,7 +1394,6 @@ DOS_ON: NOP ;*************************************** _mInfoBLOCK #3E00-$,#FF -;!TODO а чё не в стек прыгать? DOS_OFF: DI PUSH AF @@ -1811,7 +1551,7 @@ ROM_DISK.Pages: ; ; Для вызова функций биоса из страницы 0 ПЗУ (ROM Extension) FN1_RET: PUSH AF - LD A,ROM.EXPANSION + LD A,ROM.EXTENSION OUT (SYS_PORT.ROM),A POP AF RST #18 @@ -1839,7 +1579,7 @@ FN1_RET: _mInfoBLOCK #3FE8-$,#FF EXP_HDD: ;HDD_EXE: PUSH AF - LD A,ROM.EXPANSION + LD A,ROM.EXTENSION OUT (SYS_PORT.ROM),A POP AF RET diff --git a/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm b/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm index ac3a106..e3b0139 100644 --- a/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm +++ b/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm @@ -449,7 +449,7 @@ WRS000: PUSH BC LD D,#1D ;!!!!! CMOS глянуть ;LD C,BIOS.CMOS_RD - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_RD POP BC AND 1 diff --git a/src/bios/exp/EXTENDED/RAM_DISK_DRIVER_1.asm b/src/bios/exp/EXTENDED/RAM_DISK_DRIVER_1.asm index c61d1e7..43c93bb 100644 --- a/src/bios/exp/EXTENDED/RAM_DISK_DRIVER_1.asm +++ b/src/bios/exp/EXTENDED/RAM_DISK_DRIVER_1.asm @@ -115,7 +115,7 @@ RAM_DRV_READ_WRITE: AND #0F ;номер рамдиска ;LD C,BIOS.GET_RAMD_ST - ;RST ToBIOS_18 + ;RST_to_BIOS CALL GET_RAMD_ST ; A = Memory Block ID @@ -136,7 +136,7 @@ RAM_DRV_READ_WRITE: PUSH DE //PUSH BC ;LD C,BIOS.BLK_RD_WR - ;RST ToBIOS_18 + ;RST_to_BIOS CALL BLK_RD_WR JR C,.error_stack3 ; hl = address + Sector_low * 256 * Sector_counter diff --git a/src/bios/exp/FUNC_SERVICE.asm b/src/bios/exp/FUNC_SERVICE.asm index b7e8dbd..4ed67f3 100644 --- a/src/bios/exp/FUNC_SERVICE.asm +++ b/src/bios/exp/FUNC_SERVICE.asm @@ -122,7 +122,7 @@ RST_CONF: ;!TODO сделать функцию по заливке своей конфы, перехвату ресета. ; .. ... ... .. LD BC,256*BIOS.REINIT.HARD_RESET + BIOS.REINIT - JP ToBIOS_18 + JP_to_BIOS ;*************************************** @@ -190,7 +190,7 @@ REINIT: DEC B DI LD A,DCP_PAGE OUT (SLOT1),A ; set DCP page - LD A,Conf_port.RESET + LD A,ACEX.RESET LD (#4400),A ; open for WR .loop: LD BC,#0100 ; цикл сброса OUT (C),C diff --git a/src/bios/exp/ZX_MENU.ASM b/src/bios/exp/ZX_MENU.ASM index a8930e0..6caae58 100644 --- a/src/bios/exp/ZX_MENU.ASM +++ b/src/bios/exp/ZX_MENU.ASM @@ -101,7 +101,7 @@ RUN_M_1: POP AF ; вернуть номер выбора POP IX RET ; возврат из программы RUN_MENU - +JP_HL: JP (HL) ;************************************** ; 128k MENU ;************************************** @@ -132,7 +132,7 @@ MN_128_S: ;************************************** MENU_128: LD A,0 - OUT (SYS_PORT_OFF),A + OUT (SYS_PORT.OFF),A CALL SWAP_ROM CALL NEW_SP @@ -220,9 +220,9 @@ BASIC_MENU: ; CP 'S' ; JP Z,SET_SYSTEM - LD DE,(CH_ADR) + LD DE,(ZX_VARS.CH_ADR) PUSH DE - LD (CH_ADR),HL + LD (ZX_VARS.CH_ADR),HL CALL_48X 1C8Ch ; SYMBOL VAR CALL_48X 2BF1h ; input txt !!! ; DE - adr @@ -239,7 +239,7 @@ NO_EXE_M: POP DE LD (DE),A POP HL - LD (CH_ADR),HL + LD (ZX_VARS.CH_ADR),HL JP SW_ROM TST_M: PUSH DE @@ -276,9 +276,9 @@ ERR_TST_M: ;************************************** CALL_DOS_MOVE: - LD DE,5C00H-.Size + LD DE,#5C00 - DOS_PROG.Size ;!HARDCODE LD HL,DOS_PROG - LD BC,.Size + LD BC,DOS_PROG.Size LDIR RET ; @@ -294,7 +294,7 @@ CALL_DOS1: LD (ZX_VARS.STK_BOT),DE LD (ZX_VARS.STK_END),DE CALL CALL_DOS_MOVE - JP 5C00H-.Size + JP #5C00 - DOS_PROG.Size CALL_DOS: PUSH HL PUSH DE @@ -302,17 +302,17 @@ CALL_DOS: PUSH AF CALL CALL_DOS_MOVE LD A,13H - LD (5C00H-.Size+DOS_PROG_A),A + LD (5C00H-DOS_PROG.Size+DOS_PROG_A),A POP AF POP BC POP DE POP HL - JP 5C00H-.Size + JP #5C00-DOS_PROG.Size DOS_PROG: PUSH AF XOR A - OUT (SYS_PORT_OFF),A + OUT (SYS_PORT.OFF),A POP AF CALL #3D03 ;!HARDCODE DOS_PROG_A EQU $-DOS_PROG-1 @@ -321,7 +321,7 @@ DOS_PROG_A EQU $-DOS_PROG-1 OUT (CNF_PORT),A POP AF RET -.Size EQU $-DOS_PROG +DOS_PROG.Size EQU $-DOS_PROG CONT_PROG: LD HL,1AFDH diff --git a/src/bios/exp/ZX_MODE.ASM b/src/bios/exp/ZX_MODE.ASM index 1c3123b..6114789 100644 --- a/src/bios/exp/ZX_MODE.ASM +++ b/src/bios/exp/ZX_MODE.ASM @@ -53,23 +53,23 @@ GOTO_TRDOS: TURBO_OFF: LD A,BIOS.FN_TURBO.OFF LD C,BIOS.FN_TURBO - JP ToBIOS_18 + JP_to_BIOS TURBO_ON: LD A,BIOS.FN_TURBO.ON LD C,BIOS.FN_TURBO - JP ToBIOS_18 + JP_to_BIOS ;******************************* CLEAR_RAM: DI LD C,BIOS.FullInit - RST ToBIOS_18 + RST_to_BIOS ; при очистке памяти из меню спектрума возврат в DSS по CAD ; будет опасным (RAM Blocks освободились), ; поэтому отключаем перехват ресета. ;!TODO придумать как отключать перехват только на возврат в DSS - LD A,Conf_port.RET_PORT + LD A,ACEX.RET_PORT LD BC,BIOS.SET_PORTS CALL ToBIOS_3D13 EI @@ -160,7 +160,7 @@ IS_MENU: SPRINTER_1X: CALL _SET_CNF LD C,BIOS.RST_CONF.SP97_1 - RST ToBIOS_18 + RST_to_BIOS CALL CNF_PN_320 LD L,2 ;FN_SYNC.INT_PENT JR 1F ;!FIXIT метку придумать @@ -169,7 +169,7 @@ SPRINTER_1X: AY8910_X: CALL _SET_CNF LD C,BIOS.RST_CONF.AY8910 - RST ToBIOS_18 + RST_to_BIOS LD A,#FA ; no ACC, Original waits LD (Port_All_Mode),A @@ -227,17 +227,17 @@ CONFIG_SET: LD A,L LD C,BIOS.FN_SYNC - RST ToBIOS_18 + RST_to_BIOS LD HL,#4104 ;!HARDCODE LD E,0 LD BC,256*4 + BIOS.LP_OPEN_S ;!HARDCODE - RST ToBIOS_18 + RST_to_BIOS LD HL,#5104 ;!HARDCODE LD E,0 LD BC,256*4 + BIOS.LP_OPEN_S - RST ToBIOS_18 + RST_to_BIOS POP DE LD A,E @@ -250,7 +250,7 @@ CONFIG_SET: SPRINTER_reset: CALL _SET_CNF LD BC,256*BIOS.REINIT.SOFT_RESET + BIOS.REINIT - JP ToBIOS_18 + JP_to_BIOS _SET_CNF: DI @@ -292,7 +292,7 @@ UTILIT: UTIL_DISK: LD A,0 - CALL EMM_FN3 + CALL EMM_FN3 ;!!!!! через RST_to_BIOS EMM.FreeMemRMD LD HL,C_DEMO6 CALL CALL_DOS1 diff --git a/src/bios/old_files/DCP_PAGE.bin b/src/bios/old_files/DCP_PAGE.bin deleted file mode 100644 index 8f766b8b7891db9985299da6aa8ae96b6621a643..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeHOTUOgJ5S=CTMW3`MeYen-b67#vz!yt$|6oT+Uu>oHizReMBWbJ~L!{WT;Y9x6 z>{=WZ(g8L<>{ z{f9(Xbg}sHD8Zzd%d+^teUaAgdG39VzA`_3`1t8FMLxv7zVa`D-(#+m#ZNEfX~s{l zgx_5){uB#}_IrCHJ}R0|`@7-zKRzHj z_Rn+pkg<>d2I4;L%rD^r%~?fCqI>VN0_3;7=AgVKiMP4h3v|EVzl@8mDY{|WN{fcd#u>z{6ZSDKao z2YX|Gl_t0zdz; z=4$?L*z*6?R;?1`L)@y`_0#w?-$&flCMiQc#7X5z?VaxwlTeV7%4{@t%*H7a^ z{#O1E4MSYGV&p>%Z4ny(VlMX#xAI?Tv>pB=|L5_jSf~>|#Aq*Kcz1+oFJh@b4S!+& z9}HvrHUH%T)O*CzhU?!B{fGVcpvU}*RsYldzob9f{`UUd(Ep%6HtrKX^v8|-CF?)W z7sulu{L&+K-Z68~ut4NP%vE~W?+7I|H~fK zd|La**8i>K-}&eNA>WVlZ|V8}Q*{@&SN(g|Gyg8l|DOXte~&QJqRja}{r-W*&i{u# ze`nkAydSZ2kNF$cAEoF2z5NgTHt*%>e{cT-|JeFJb^bjy|E}x*)cN<+{JXCITgkr* z^uI5E@A)6}ch~fPEBSYc|3Uvs^|!bGd-C6P{YU+qI{%)Uf7kN=+ope0=igKF7v}%< z`#(*#WBy;i|1UiM>8XF({gThy`9sP6|Iqsn>%YHqZyfg@hF<@y=RcJfxR&4Y|E&Fo z8vi-~3_SjY pzv{nq@pbc0)&JJ`3-KPtW58Uc#{VvS|5Mlh?mLSx{)yNB{{hDGr+fea diff --git a/src/bios/old_files/EXP_DCP.LZ b/src/bios/old_files/EXP_DCP.LZ deleted file mode 100644 index d0f93ea1108566181902d84eff41ef893e0dccc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5108 zcmeHK&2G~`5VlK_Hn;rLX(4UpQinj3Ho_7}Ac67>IdLp+LT~2QybnlOL*3Wl*zIW_ z00c9$PByl8?Ifh7LUp&hqn-U`Iy-+`yLR^d+Qz9G)%*OoMN4nzw|n^X$m@J=oL%0; z^f#odQF9=!CgC;^J#iIo6IKa0?UR7P$yfJT_xTHiC`y7Efk6ro3AD%C0QUI7xr;bC zPxVObI0M-)f?T8^E(e6me@O#T(Hsd{I%49$awwd{9~Z-vF^VD(Lr_OB4a(ztDT_e3 zNyYr(kC!(eK1J;Y(Q6S*hOqh~7@DA8C^P{%BP5U^5CkwS5-i;FKe+&-Db|srY94@| zR0z;98YZIaA@eB0A2KhQdD9HaX6}EJcbKRPCK05b${|yNFOzjet)MGpqdOA%9->-+ zq9BgDLbf(k|JDbZ>rsOm>!`Y4)ITn0d5f1#o$E{!z!qNyr z+(@w)vRVPl^58tN#%2~a6bnX5CiRR4whRrE`T{7_aREbrsF~MF*ZNzEx;TnVv6^z! zy^gu%qsZ`DOBpTYE*o(&s&uh+YgY9~W`eS2idLtkGjkwwO-q(9J;FQpL(LZO3lHuSVvoobt#iG1E_l zg(XH)(FuHJ&AyG$s>ml)Vr%+zQkz3-Bd!sv>{al8;OrgI?c%fw@BVmYb|Xl@jl!7! Kv^#fn>wf^Iw9R1v diff --git a/src/bios/old_files/EXP_DCP2.asm b/src/bios/old_files/EXP_DCP2.asm deleted file mode 100644 index 9c7bd28..0000000 --- a/src/bios/old_files/EXP_DCP2.asm +++ /dev/null @@ -1,460 +0,0 @@ -; - IFN SET_NEWdcp -;-----------------------------------------------------------------------; -; !TODO сравнить как запакуется DCP алгоритмом для k50 -DCP_INIT: - EXX - LD HL,DCP_DATA - LD DE,#C000 -.loop0: - LD B,8 - LD C,(HL) - INC HL -.loop1: - RLC C - JR C,.loop2 - SUB A - LD (DE),A - INC DE - DJNZ .loop1 - JR .loop3 -.loop2: - LD A,(HL) - INC HL - LD (DE),A - INC DE - DJNZ .loop1 -.loop3: - inc d - dec d - JR NZ,.loop0 - - LD HL,#C000 ; CONFIG-3 for DOS & other fns - LD DE,#F000 - LD BC,#0400 - LDIR - LD HL,#F000 - LD DE,#F400 - LD BC,#0C00 - LDIR - -; First IN command - OPEN DCP - IN A,(SLOT3) - EXX - JP (HL) -;-----------------------------------------------------------------------; - - ELSE - -;-----------------------------------------------------------------------; -DCP_INIT: - LD C,XL - LD B,XH - LD E,YL - LD D,YH - EXX - - LD HL,#C000 - LD DE,#C001 - LD BC,#3FFF - LD (HL),L - LDIR - - LD IY,.data - LD IX,.ret - -.loop: - LD L,(IY) - LD H,(IY+1) - LD E,(IY+2) - LD D,(IY+3) - LD B,(IY+4) - JR DCP_FN0M - -.ret: - LD BC,5 - ADD IY,BC - LD A,(IY+2) - OR (IY+3) - JR NZ,.loop - - EXX - LD XL,C - LD XH,B - LD YL,E - LD YH,D - -; First IN command - OPEN DCP - IN A,(SLOT3) - JP (HL) -;-----------------------------------------------------------------------; - ENDIF - - -;-----------------------------------------------------------------------; -; Функция дешифратора портов. -; HL - адрес -; DE - маска - 0 изменяемые биты, 1 неизменяемые -; B - порт - -DCP_FN0M: - LD A,L - AND E - LD L,A - - LD A,H - AND D -; AND #3F - OR #C0 - LD H,A - - LD A,D - OR #C0 - LD D,A - -.loop: LD (HL),B - - LD A,L ; замаскировать неизменяемые биты 1-ми - OR E ; для прохождения переноса - INC A ; увеличить адрес - JR Z,.carry ; возник перенос - - OR E - XOR E ; обнулить неизменяемые биты - LD C,A ; изменяемая часть - - LD A,L - AND E ; выделить неизменяемую - OR C - LD L,A ; добавить изменяемую часть - - JR .loop ; цикл - -.carry: ; A = 0 -; OR E -; XOR E -; LD C,A - LD A,L ; забить изменяемые биты нулями - AND E -; OR C - LD L,A - - LD A,H ; замаскировать неизменяемые биты 1-ми - OR D ; для прохождения переноса - INC A ; увеличить адрес - JR Z,.exit - - OR D - XOR D - LD C,A ; изменяемая часть - - LD A,H - AND D ; выделить неизменяемую - OR C - LD H,A ; добавить изменяемую часть - JR .loop - -.exit: JP (IX) -; - - IF SET_NEWdcp -;-----------------------------------------------------------------------; -; DATA FOR DCP -; вбиваем в таблицу DCP.XLSX нужный внешний порт, -; смотрим смещение для OUT (С),x - это адрес -; -; C C E D / A A A A A A A A A -; N N 1 O W 1 1 6 5 1 7 2 1 0 -; F F 2 S R 5 4 3 -; 1 0 8 -; -; CCED/AAAAAAAAA -; NN1OW116517210 -; FF2SR54 3 -DCP_INIT.data: ; 108 -; Border ....0..11.1110 - DW %00000001101110 ; - адрес - DW %00001001101111 ; - маска - 0 изменяемые биты, 1 неизменяемые - DB #C2 ; - порт -; Keyboard ....1..11.1110 - DW %00001001101110 - DW %00001001101111 - DB #40 -; Kempston ...11..00.0111 - DW %00011000000111 - DW %00011001101111 - DB #15 - -; DRQ/INTRQ ...01..11.1111 - DW %00001001101111 - DW %00011001101111 - DB #15 -; WR_PDOS ...00..11.1111 - DW %00000001101111 - DW %00011001101111 - DB #14 -; CS_WG93_1F ...0...00.0111 - DW %00000000000111 - DW %00010001101111 - DB #10 -; CS_WG93_3F ...0...01.0111 - DW %00000000100111 - DW %00010001101111 - DB #11 -; CS_WG93_5F ...0...10.0111 - DW %00000001000111 - DW %00010001101111 - DB #12 -; CS_WG93_7F ...0...11.0111 - DW %00000001100111 - DW %00010001101111 - DB #13 -; -; CNF_PORT ........1.0100 - DW %00000000100100 - DW %00000000101111 - DB #C6 -; -; SOUND_BFFD_WR ....0101111101 - DW %00000101111101 - DW %00001111111111 - DB #91 -; SOUND_FFFD_WR ....0111111101 - DW %00000111111101 - DW %00001111111111 - DB #90 -; SOUND_FFFD_RD ....11.1111101 - DW %00001101111101 - DW %00001101111111 - DB #00 -; -; COVOX_4F ...10.....0111 - DW %00010000000111 - DW %00011000001111 - DB #88 -; COVOX_FB ...10..11.1011 - DW %00010001101011 - DW %00011001101111 - DB #88 -; CASH__FB ...11..11..011 - DW %00011001100011 - DW %00011001100111 - DB #88 -; CASH__80 ...11..00.1000 - DW %00011000001000 - DW %00011001101111 - DB #88 -; -; P_XTR ...1...01.1.11 - DW %00010000101011 - DW %00010001101011 - DB #32 -; -; SC_256_1FFDH 0....001101101 - DW %00000001101101 - DW %10000111111111 - DB #C0 -; ZX_128_7FFDH 0.0..0111.1101 - DW %00000011101101 - DW %10100111101111 - DB #C1 -; ZX_128_7FFDH 0..0.0111.1101 - DW %00000011101101 - DW %10010111101111 - DB #C1 - -; ZX_128_7FFDH 100..0.11.1101 - DW %10000001101101 - DW %11100101101111 - DB #C1 -; ZX_128_7FFDH 10.0.0.11.1101 - DW %10000001101101 - DW %11010101101111 - DB #C1 - -; SC_256_1FFDH 11...001101101 - DW %11000001101101 - DW %11000111111111 - DB #C0 -; ZX_128_7FFDH 110..0111.1101 - DW %11000011101101 - DW %11100111101111 - DB #C1 -; ZX_128_7FFDH 11.0.0111.1101 - DW %11000011101101 - DW %11010111101111 - DB #C1 -; -; HDD_DATA ...0...10.0000 - DW %00000001000000 - DW %00010001101111 - DB #20 -; HDD_1F1 ...0.0010.0001 - DW %00000001000001 - DW %00010111101111 - DB #21 -; HDD_1F2 ...0.0010.0010 - DW %00000001000010 - DW %00010111101111 - DB #22 -; HDD_1F3 ...0.0010.0011 - DW %00000001000011 - DW %00010111101111 - DB #23 -; HDD_1F4 ...0.0010.0100 - DW %00000001000100 - DW %00010111101111 - DB #24 -; HDD_1F5 ...0.0010.0101 - DW %00000001000101 - DW %00010111101111 - DB #25 -; HDD_1F6 ...0.0110.0010 - DW %00000011000010 - DW %00010111101111 - DB #26 -; HDD_1F7 ...0.0110.0011 - DW %00000011000011 - DW %00010111101111 - DB #27 -; HDD_3F6 ...0.0110.0100 - DW %00000011000100 - DW %00010111101111 - DB #28 -; HDD_3F7 ...0.0110.0101 - DW %00000011000101 - DW %00010111101111 - DB #29 -; -; HDD_DATA 00.....10.0000 - DW %00000001000000 - DW %11000001101111 - DB #20 -; HDD_1F1 00...0010.0001 - DW %00000001000001 - DW %11000111101111 - DB #21 -; HDD_1F2 00...0010.0010 - DW %00000001000010 - DW %11000111101111 - DB #22 -; HDD_1F3 00...0010.0011 - DW %00000001000011 - DW %11000111101111 - DB #23 -; HDD_1F4 00...0010.0100 - DW %00000001000100 - DW %11000111101111 - DB #24 -; HDD_1F5 00...0010.0101 - DW %00000001000101 - DW %11000111101111 - DB #25 -; HDD_1F6 00...0110.0010 - DW %00000011000010 - DW %11000111101111 - DB #26 -; HDD_1F7 00...0110.0011 - DW %00000011000011 - DW %11000111101111 - DB #27 -; HDD_3F6 00...0110.0100 - DW %00000011000100 - DW %11000111101111 - DB #28 -; HDD_3F7 00...0110.0101 - DW %00000011000101 - DW %11000111101111 - DB #29 -; -; PAGE0 ...0...00.1010 - DW %00000000001010 - DW %00010001101111 - DB #E8 -; PAGE1 ...0...01.1010 - DW %00000000101010 - DW %00010001101111 - DB #E9 -; PAGE2 ...0...10.1010 - DW %00000001001010 - DW %00010001101111 - DB #EA -; PAGE3 ...0...11.1010 - DW %00000001101010 - DW %00010001101111 - DB #F0 -; -; PAGE0 00.....00.1010 - DW %00000000001010 - DW %11000001101111 - DB #E8 -; PAGE1 00.....01.1010 - DW %00000000101010 - DW %11000001101111 - DB #E9 -; PAGE2 00.....10.1010 - DW %00000001001010 - DW %11000001101111 - DB #EA -; PAGE3 00.....11.1010 - DW %00000001101010 - DW %11000001101111 - DB #F0 -; -; Y_PORT(RGADR) ...0...00.1001 - DW %00000000001001 - DW %00010001101111 - DB #C4 -; RGMOD ...0...10.1001 - DW %00000001001001 - DW %00010001101111 - DB #C5 -; -; Y_PORT(RGADR) 00.....00.1001 - DW %00000000001001 - DW %11000001101111 - DB #C4 -; RGMOD 00.....10.1001 - DW %00000001001001 - DW %11000001101111 - DB #C5 -; -; ISA_REG ...00100101101 - DW %00000100101101 - DW %00011111111111 - DB #1B -; CMOS_DWR ...001.0111101 - DW %00000100111101 - DW %00011101111111 - DB #1E -; CMOS_AWR ...00110101101 - DW %00000110101101 - DW %00011111111111 - DB #1D -; CMOS_DRD ...011.0111101 - DW %00001100111101 - DW %00011101111111 - DB #1C -; -; ISA_REG 00..0100101101 - DW %00000100101101 - DW %11001111111111 - DB #1B -; CMOS_DWR 00..01.0111101 - DW %00000100111101 - DW %11001101111111 - DB #1E -; CMOS_AWR 00..0110101101 - DW %00000110101101 - DW %11001111111111 - DB #1D -; CMOS_DRD 00..11.0111101 - DW %00001100111101 - DW %11001101111111 - DB #1C - -; DCP END MARKER - DW 0,0,0 -;-----------------------------------------------------------------------; - ENDIF -; \ No newline at end of file diff --git a/src/bios/old_files/EXP_DCP_GENERATOR.ASM b/src/bios/old_files/EXP_DCP_GENERATOR.ASM deleted file mode 100644 index 082adbb..0000000 --- a/src/bios/old_files/EXP_DCP_GENERATOR.ASM +++ /dev/null @@ -1,9 +0,0 @@ - - DEFINE FNAME_DCPpage './src/bios/old_files/DCP_PAGE.bin' - DEFINE FNAME_DCP './src/bios/old_files/EXP_DCP_TABLE_GENERATED.ASM' - - includelua 'Shared_includes/lua/Functions.lua' - - LUA PASS1 - Generate_DCPASM_fromPAGE(sj.get_define("FNAME_DCPpage"), sj.get_define("FNAME_DCP")) - ENDLUA diff --git a/src/bios/old_files/EXP_DCP_TABLE_GENERATED.ASM b/src/bios/old_files/EXP_DCP_TABLE_GENERATED.ASM deleted file mode 100644 index 1a1b144..0000000 --- a/src/bios/old_files/EXP_DCP_TABLE_GENERATED.ASM +++ /dev/null @@ -1,639 +0,0 @@ -; -;-----------------------------------------------------------------------; - -; - DW %00000000000111 - DW %11010001101111 - DB #10 -; - DW %01000000000111 - DW %11010001101111 - DB #10 -; - DW %10000000000111 - DW %11010001101111 - DB #10 -; - DW %11000000000111 - DW %11000001101111 - DB #10 -; - DW %00000000100111 - DW %11010001101111 - DB #11 -; - DW %01000000100111 - DW %11010001101111 - DB #11 -; - DW %10000000100111 - DW %11010001101111 - DB #11 -; - DW %11000000100111 - DW %11000001101111 - DB #11 -; - DW %00000001000111 - DW %11010001101111 - DB #12 -; - DW %01000001000111 - DW %11010001101111 - DB #12 -; - DW %10000001000111 - DW %11010001101111 - DB #12 -; - DW %11000001000111 - DW %11000001101111 - DB #12 -; - DW %00000001100111 - DW %11010001101111 - DB #13 -; - DW %01000001100111 - DW %11010001101111 - DB #13 -; - DW %10000001100111 - DW %11010001101111 - DB #13 -; - DW %11000001100111 - DW %11000001101111 - DB #13 -; - DW %00000001101111 - DW %11011001101111 - DB #14 -; - DW %01000001101111 - DW %11011001101111 - DB #14 -; - DW %10000001101111 - DW %11011001101111 - DB #14 -; - DW %11000001101111 - DW %11001001101111 - DB #14 -; - DW %00001000000111 - DW %11001000000111 - DB #15 -; - DW %01001000000111 - DW %11001000000111 - DB #15 -; - DW %10001000000111 - DW %11001000000111 - DB #15 -; - DW %11001001101111 - DW %11001001101111 - DB #15 -; - DW %00000000101101 - DW %11011111111111 - DB #16 -; - DW %11000000101101 - DW %11001111111111 - DB #16 -; - DW %00000000111101 - DW %11011111111111 - DB #17 -; - DW %11000000111101 - DW %11001111111111 - DB #17 -; - DW %10000100101101 - DW %11010111111111 - DB #18 -; - DW %10000100111101 - DW %11010111111111 - DB #19 -; - DW %10000110101101 - DW %11010111111111 - DB #1A -; - DW %00000100101101 - DW %11001111111111 - DB #1B -; - DW %10000110111101 - DW %11010111111111 - DB #1B -; - DW %11000100101101 - DW %11001111111111 - DB #1B -; - DW %00001100111101 - DW %11001101111111 - DB #1C -; - DW %11001100111101 - DW %11001101111111 - DB #1C -; - DW %00000110101101 - DW %11001111111111 - DB #1D -; - DW %11000110101101 - DW %11001111111111 - DB #1D -; - DW %00000100111101 - DW %11001101111111 - DB #1E -; - DW %11000100111101 - DW %11001101111111 - DB #1E -; - DW %00000001000000 - DW %11000001101111 - DB #20 -; - DW %01000001000000 - DW %11010001101111 - DB #20 -; - DW %10000001000000 - DW %11010001101111 - DB #20 -; - DW %11000001000000 - DW %11000001101111 - DB #20 -; - DW %00000001000001 - DW %11000111101111 - DB #21 -; - DW %01000001000001 - DW %11010111101111 - DB #21 -; - DW %10000001000001 - DW %11010111101111 - DB #21 -; - DW %11000001000001 - DW %11000111101111 - DB #21 -; - DW %00000001000010 - DW %11000111101111 - DB #22 -; - DW %01000001000010 - DW %11010111101111 - DB #22 -; - DW %10000001000010 - DW %11010111101111 - DB #22 -; - DW %11000001000010 - DW %11000111101111 - DB #22 -; - DW %00000001000011 - DW %11000111101111 - DB #23 -; - DW %01000001000011 - DW %11010111101111 - DB #23 -; - DW %10000001000011 - DW %11010111101111 - DB #23 -; - DW %11000001000011 - DW %11000111101111 - DB #23 -; - DW %00000001000100 - DW %11000111101111 - DB #24 -; - DW %01000001000100 - DW %11010111101111 - DB #24 -; - DW %10000001000100 - DW %11010111101111 - DB #24 -; - DW %11000001000100 - DW %11000111101111 - DB #24 -; - DW %00000001000101 - DW %11000111101111 - DB #25 -; - DW %01000001000101 - DW %11010111101111 - DB #25 -; - DW %10000001000101 - DW %11010111101111 - DB #25 -; - DW %11000001000101 - DW %11000111101111 - DB #25 -; - DW %00000011000010 - DW %11000111101111 - DB #26 -; - DW %01000011000010 - DW %11010111101111 - DB #26 -; - DW %10000011000010 - DW %11010111101111 - DB #26 -; - DW %11000011000010 - DW %11000111101111 - DB #26 -; - DW %00000011000011 - DW %11000111101111 - DB #27 -; - DW %01000011000011 - DW %11010111101111 - DB #27 -; - DW %10000011000011 - DW %11010111101111 - DB #27 -; - DW %11000011000011 - DW %11000111101111 - DB #27 -; - DW %00000011000100 - DW %11000111101111 - DB #28 -; - DW %01000011000100 - DW %11010111101111 - DB #28 -; - DW %10000011000100 - DW %11010111101111 - DB #28 -; - DW %11000011000100 - DW %11000111101111 - DB #28 -; - DW %00000011000101 - DW %11000111101111 - DB #29 -; - DW %01000011000101 - DW %11010111101111 - DB #29 -; - DW %10000011000101 - DW %11010111101111 - DB #29 -; - DW %11000011000101 - DW %11000111101111 - DB #29 -; - DW %00000000101100 - DW %11001111111111 - DB #2A -; - DW %11000000101100 - DW %11001111111111 - DB #2A -; - DW %00000000111100 - DW %11001111111111 - DB #2B -; - DW %11000000111100 - DW %11001111111111 - DB #2B -; - DW %00000010101101 - DW %11001111111111 - DB #2C -; - DW %11000010101101 - DW %11001111111111 - DB #2C -; - DW %00000010111101 - DW %11001111111111 - DB #2D -; - DW %11000010111101 - DW %11001111111111 - DB #2D -; - DW %00000010101100 - DW %11001111111111 - DB #2E -; - DW %11000010101100 - DW %11001111111111 - DB #2E -; - DW %00000010111100 - DW %11001111111111 - DB #2F -; - DW %11000010111100 - DW %11001111111111 - DB #2F -; - DW %00010000101011 - DW %11010001101011 - DB #32 -; - DW %00011001101110 - DW %11011001101111 - DB #40 -; - DW %01011001101110 - DW %11011001101111 - DB #40 -; - DW %10011001101110 - DW %11011001101111 - DB #40 -; - DW %00001111111101 - DW %11001111111111 - DB #52 -; - DW %01001111111101 - DW %11001111111111 - DB #52 -; - DW %10001111111101 - DW %11001111111111 - DB #52 -; - DW %11001111111101 - DW %11001111111111 - DB #52 -; - DW %00001111011111 - DW %11001111111111 - DB #58 -; - DW %11001111011111 - DW %11001111111111 - DB #58 -; - DW %00010000000000 - DW %11010000000000 - DB #88 -; - DW %01010001100011 - DW %11010001100111 - DB #88 -; - DW %10010001100011 - DW %11010001100111 - DB #88 -; - DW %00000001000110 - DW %11001111111111 - DB #89 -; - DW %11000001000110 - DW %11001111111111 - DB #89 -; - DW %00000111111101 - DW %11001111111111 - DB #90 -; - DW %01000111111101 - DW %11001111111111 - DB #90 -; - DW %10000111111101 - DW %11001111111111 - DB #90 -; - DW %11000111111101 - DW %11001111111111 - DB #90 -; - DW %00000101111101 - DW %11001111111111 - DB #91 -; - DW %01000101111101 - DW %11001111111111 - DB #91 -; - DW %10000101111101 - DW %11001111111111 - DB #91 -; - DW %11000101111101 - DW %11001111111111 - DB #91 -; - DW %00000001101101 - DW %11000111111111 - DB #C0 -; - DW %01000001101101 - DW %11000111111111 - DB #C0 -; - DW %11000001101101 - DW %11000111111111 - DB #C0 -; - DW %00000011101101 - DW %11000111101111 - DB #C1 -; - DW %01000011101101 - DW %11100111101111 - DB #C1 -; - DW %10000001101101 - DW %11100101101111 - DB #C1 -; - DW %11000011101101 - DW %11000111101111 - DB #C1 -; - DW %00000001101110 - DW %11001001101111 - DB #C2 -; - DW %01000001101110 - DW %11001001101111 - DB #C2 -; - DW %10000001101110 - DW %11001001101111 - DB #C2 -; - DW %11000001101110 - DW %11001001101111 - DB #C2 -; - DW %00000001010110 - DW %11001111111111 - DB #C3 -; - DW %11000001010110 - DW %11001111111111 - DB #C3 -; - DW %00000000001001 - DW %11000001101111 - DB #C4 -; - DW %01000000001001 - DW %11010001101111 - DB #C4 -; - DW %10000000001001 - DW %11010001101111 - DB #C4 -; - DW %11000000001001 - DW %11000001101111 - DB #C4 -; - DW %00000001001001 - DW %11000001101111 - DB #C5 -; - DW %01000001001001 - DW %11010001101111 - DB #C5 -; - DW %10000001001001 - DW %11010001101111 - DB #C5 -; - DW %11000001001001 - DW %11000001101111 - DB #C5 -; - DW %00000000100100 - DW %11000000101111 - DB #C6 -; - DW %01000000100100 - DW %11000000101111 - DB #C6 -; - DW %10000000100100 - DW %11000000101111 - DB #C6 -; - DW %11000000100100 - DW %11000000101111 - DB #C6 -; - DW %00000001101100 - DW %11001001101111 - DB #C7 -; - DW %11000001101100 - DW %11001001101111 - DB #C7 -; - DW %00000000001010 - DW %11000001101111 - DB #E8 -; - DW %01000000001010 - DW %11010001101111 - DB #E8 -; - DW %10000000001010 - DW %11010001101111 - DB #E8 -; - DW %11000000001010 - DW %11000001101111 - DB #E8 -; - DW %00000000101010 - DW %11000001101111 - DB #E9 -; - DW %01000000101010 - DW %11010001101111 - DB #E9 -; - DW %10000000101010 - DW %11010001101111 - DB #E9 -; - DW %11000000101010 - DW %11000001101111 - DB #E9 -; - DW %00000001001010 - DW %11000001101111 - DB #EA -; - DW %01000001001010 - DW %11010001101111 - DB #EA -; - DW %10000001001010 - DW %11010001101111 - DB #EA -; - DW %11000001001010 - DW %11000001101111 - DB #EA -; - DW %00000001101010 - DW %11000001101111 - DB #F0 -; - DW %01000001101010 - DW %11010001101111 - DB #F0 -; - DW %10000001101010 - DW %11010001101111 - DB #F0 -; - DW %11000001101010 - DW %11000001101111 - DB #F0 -; DCP END MARKER - DW 0,0,0 -;-----------------------------------------------------------------------; -; \ No newline at end of file diff --git a/src/bios/old_files/EXP_DCP_UNPACKER.asm b/src/bios/old_files/EXP_DCP_UNPACKER.asm deleted file mode 100644 index 1e7964d..0000000 --- a/src/bios/old_files/EXP_DCP_UNPACKER.asm +++ /dev/null @@ -1,110 +0,0 @@ -; -;-----------------------------------------------------------------------; -; !TODO сравнить как запакуется DCP алгоритмом для k50 -DCP_INIT: - EXX - LD HL,DCP_DATA - LD DE,#C000 -.loop0: - LD B,8 - LD C,(HL) - INC HL -.loop1: - RLC C - JR C,.loop2 - SUB A - LD (DE),A - INC DE - DJNZ .loop1 - JR .loop3 -.loop2: - LD A,(HL) - INC HL - LD (DE),A - INC DE - DJNZ .loop1 -.loop3: - INC D - DEC D - JR NZ,.loop0 - - LD HL,#C000 ; CONFIG-3 for DOS & other fns - LD DE,#F000 - LD BC,#0400 - LDIR ; DE = #F400 !!! - LD HL,#F000 - ;LD DE,#F400 - LD BC,#0C00 - LDIR - -; First IN command - OPEN DCP - IN A,(SLOT3) - EXX - JP (HL) -;-----------------------------------------------------------------------; - - -;-----------------------------------------------------------------------; -; Функция дешифратора портов. -; HL - адрес -; DE - маска - 0 изменяемые биты, 1 неизменяемые -; B - порт -; DCP_FN0M: -; LD A,L -; AND E -; LD L,A - -; LD A,H -; AND D -; ; AND #3F -; OR #C0 -; LD H,A - -; LD A,D -; OR #C0 -; LD D,A - -; .loop: LD (HL),B - -; LD A,L ; замаскировать неизменяемые биты 1-ми -; OR E ; для прохождения переноса -; INC A ; увеличить адрес -; JR Z,.carry ; возник перенос - -; OR E -; XOR E ; обнулить неизменяемые биты -; LD C,A ; изменяемая часть - -; LD A,L -; AND E ; выделить неизменяемую -; OR C -; LD L,A ; добавить изменяемую часть - -; JR .loop ; цикл - -; .carry: ; A = 0 -; ; OR E -; ; XOR E -; ; LD C,A -; LD A,L ; забить изменяемые биты нулями -; AND E -; ; OR C -; LD L,A - -; LD A,H ; замаскировать неизменяемые биты 1-ми -; OR D ; для прохождения переноса -; INC A ; увеличить адрес -; JR Z,.exit - -; OR D -; XOR D -; LD C,A ; изменяемая часть - -; LD A,H -; AND D ; выделить неизменяемую -; OR C -; LD H,A ; добавить изменяемую часть -; JR .loop - -; .exit: JP (IX) -;-----------------------------------------------------------------------; diff --git a/src/bios/old_files/FONT.FNT b/src/bios/old_files/FONT.FNT deleted file mode 100644 index 441e654f3abaea5bac39cdfa8e6c782d574001e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 zcmb7_v1=Sh6viKpxTF}QEfzc=ac6@6fFTZIi$xBuT)Ig=NMhn*3RRbZOjb_kB85u3 zOOwWRTEk$$RF5OoVzS3^)wwZZ2|`}*Fq=1fCn1Lv&g`zR- z2w1`%6tEO*d9qnDTi^Hiathm_3sq=JU;B~wHU=9!KSy8J?Hgxj6>M!@66^cd-#1y7 z~Zl7E#6kN}h4=mNj=v9R>x^88En;HX({ zm#R5}vgBOAecpr7+IlU8P-zFupCFb_BBBri1bU;CK0H(?n35MOtx(|~1HYG&7sM}t zfll9(8w45~n&4udjU77W8btxyzVN9DU#Y||-Zxmpkg=Y1tiAswtqVIFnA5i9b3loaANNHlGQ`bmv&&mw~edDyN=4 zb;Pe_yz;~^1@UYARSK?w8)=x4Q+>jez|PF4b8CnA1mcHcf8ei1v)S8mO!!Xtrrhw4 z8gCr=!!(8hzU|S3LH{;~_A(EbdArenlHZ+t= z>y$Ar2%?M&Z_x_kuM7GP=bjuxBiQ1U;v*uGJEktpYkZLsL#q&+>Ug8fwKbFMb9dNa)N&YJ7-XlSpmNIp zAi!bDe@XdI51tBzNss123nfSCZBiVav}ArQYD8-#`xZ^q_ITh=j;H+ht5u?>&N~0s z{Jx==hxp+8_Y|K&{~`aW&{4@7Bqy3w5a~!4NEMJKX>i~ty;-G^rFf!mv~x85L>$w* z0$}hz`Dv(sShcI>*_~4DVs)$jgBE@Yss0oHGaG^#8zamK=|?5aV5n`rJB`pR@}rlw^pgDXP`ELq#}snDJUs{ar@`M-~iUDI3dtg!q%j$%*#w=-WE znzuv#Q;9T#{;Ax5F25tUaUWS)ud_3Z)|l*`ctJZ$E&!@@07a4h{|sL`QjAVR-T!Fv z)3JYbKb_q4uGi_(qN%mx%?yoPxAW_VoBIghi<=JIp5NsE=kwEtIefa_8hpL}Kjn+~ A9smFU diff --git a/src/bios/old_files/SP_EXP2_dasm.asm b/src/bios/old_files/SP_EXP2_dasm.asm deleted file mode 100644 index fee15df..0000000 --- a/src/bios/old_files/SP_EXP2_dasm.asm +++ /dev/null @@ -1,565 +0,0 @@ -; z80dasm 1.2.0 -; command line: z80dasm -a -l -u -t -g 0x0000 -o /Users/tolik/Library/CloudStorage/GoogleDrive-tolik.trek@gmail.com/╨Ь╨╛╨╣ ╨┤╨╕╤Б╨║/Progs/ASM/GIT/DSS 1.70b/Build/SP_EXP2_dasm.a80 /Users/tolik/Downloads/SP_EXP2.BIN - - org 00000h -;-----------------------------------------------------------------------; -l0000h: di ;0000 f3 . - halt ;0001 76 v -; - BLOCK #10-$,#FF - ret ;0010 c9 . -; - BLOCK #38-$,#FF - ei ;0038 fb . - reti ;0039 ed 4d . M -; - BLOCK #66-$,#C9 - retn ;0066 ed 45 . E -; -;-----------------------------------------------------------------------; -; - -; -;-----------------------------------------------------------------------; - BLOCK #100-$,#FF -l0100h: pop af ;0100 f1 . - call sub_010eh ;0101 cd 0e 01 . . . - jp l3fe8h ;0104 c3 e8 3f . . ? -l0107h: - pop af ;0107 f1 . - call sub_010eh ;0108 cd 0e 01 . . . - jp l3ff0h ;010b c3 f0 3f . . ? - - -sub_010eh: - push af ;010e f5 . - ld a,c ;010f 79 y - and a ;0110 a7 . - jp z,l030ch ;0111 ca 0c 03 . . . - dec a ;0114 3d = - jp z,l02b1h ;0115 ca b1 02 . . . - dec a ;0118 3d = - jp z,l02cch ;0119 ca cc 02 . . . - dec a ;011c 3d = - jp z,l017bh ;011d ca 7b 01 . { . - dec a ;0120 3d = - jp z,l019ch ;0121 ca 9c 01 . . . - dec a ;0124 3d = - jp z,l01a7h ;0125 ca a7 01 . . . - dec a ;0128 3d = - jp z,l0247h ;0129 ca 47 02 . G . - dec a ;012c 3d = - jp z,l0424h ;012d ca 24 04 . $ . - pop af ;0130 f1 . - scf ;0131 37 7 - ret ;0132 c9 . - - -sub_0133h: - ld d,a ;0133 57 W - in a,(0e2h) ;0134 db e2 . . - ex af,af' ;0136 08 . - ld a,0feh ;0137 3e fe > . - out (0e2h),a ;0139 d3 e2 . . - ld a,(0c60ch) ;013b 3a 0c c6 : . . - ld e,a ;013e 5f _ - ex af,af' ;013f 08 . - out (0e2h),a ;0140 d3 e2 . . - ld a,d ;0142 7a z - ld d,000h ;0143 16 00 . . - ld ix,0 ;0145 dd 21 00 00 . ! . . - ld b,001h ;0149 06 01 . . -sub_014bh: - push af ;014b f5 . - push hl ;014c e5 . - call sub_03d4h ;014d cd d4 03 . . . -l0150h: - jr nc,l0156h ;0150 30 04 0 . -l0152h: - pop hl ;0152 e1 . -l0153h: - pop af ;0153 f1 . -l0154h: - scf ;0154 37 7 -l0155h: - ret ;0155 c9 . -l0156h: - ld a,b ;0156 78 x - ld bc,l0152h ;0157 01 52 01 . R . - out (c),a ;015a ed 79 . y - ld bc,l0153h ;015c 01 53 01 . S . - out (c),l ;015f ed 69 . i - ld bc,l0154h ;0161 01 54 01 . T . - out (c),e ;0164 ed 59 . Y - ld bc,l0155h ;0166 01 55 01 . U . - out (c),d ;0169 ed 51 . Q - ld bc,04152h ;016b 01 52 41 . R A - dec b ;016e 05 . - in a,(c) ;016f ed 78 . x - and 0f0h ;0171 e6 f0 . . - or h ;0173 b4 . - inc b ;0174 04 . - out (c),a ;0175 ed 79 . y - pop hl ;0177 e1 . - pop af ;0178 f1 . - and a ;0179 a7 . - ret ;017a c9 . -l017bh: - pop af ;017b f1 . - and a ;017c a7 . - inc b ;017d 04 . - dec b ;017e 05 . - ret z ;017f c8 . - call sub_03aeh ;0180 cd ae 03 . . . - ret c ;0183 d8 . - call sub_014bh ;0184 cd 4b 01 . K . - ret c ;0187 d8 . - exx ;0188 d9 . - ld c,0e2h ;0189 0e e2 . . - in b,(c) ;018b ed 40 . @ - exx ;018d d9 . - out (0e2h),a ;018e d3 e2 . . - ex af,af' ;0190 08 . - ld a,0c0h ;0191 3e c0 > . - out (089h),a ;0193 d3 89 . . - ld bc,04153h ;0195 01 53 41 . S A - ld a,020h ;0198 3e 20 > - and a ;019a a7 . - ret ;019b c9 . -l019ch: - pop af ;019c f1 . - call sub_03aeh ;019d cd ae 03 . . . - ret c ;01a0 d8 . - call sub_0133h ;01a1 cd 33 01 . 3 . - ret c ;01a4 d8 . - jr l01b4h ;01a5 18 0d . . -l01a7h: - pop af ;01a7 f1 . - and a ;01a8 a7 . - inc b ;01a9 04 . - dec b ;01aa 05 . - ret z ;01ab c8 . - call sub_03aeh ;01ac cd ae 03 . . . - ret c ;01af d8 . - call sub_014bh ;01b0 cd 4b 01 . K . - ret c ;01b3 d8 . -l01b4h: - exx ;01b4 d9 . - ld c,0e2h ;01b5 0e e2 . . - in b,(c) ;01b7 ed 40 . @ - exx ;01b9 d9 . - out (0e2h),a ;01ba d3 e2 . . - ex af,af' ;01bc 08 . - ld a,0c0h ;01bd 3e c0 > . - out (089h),a ;01bf d3 89 . . - ld bc,04153h ;01c1 01 53 41 . S A - ld a,020h ;01c4 3e 20 > - out (c),a ;01c6 ed 79 . y -l01c8h: - ld bc,04053h ;01c8 01 53 40 . S @ - in a,(c) ;01cb ed 78 . x - bit 7,a ;01cd cb 7f . . - jr nz,l01c8h ;01cf 20 f7 . - bit 3,a ;01d1 cb 5f . _ - jr nz,l01e8h ;01d3 20 13 . - ld a,000h ;01d5 3e 00 > . - out (089h),a ;01d7 d3 89 . . -l01d9h: - exx ;01d9 d9 . - out (c),b ;01da ed 41 . A - exx ;01dc d9 . - ld bc,#0051 ;01dd 01 51 00 . Q . - in a,(c) ;01e0 ed 78 . x - and a ;01e2 a7 . - scf ;01e3 37 7 - ret nz ;01e4 c0 . - ex af,af' ;01e5 08 . - and a ;01e6 a7 . - ret ;01e7 c9 . -l01e8h: - ld bc,#0050 ;01e8 01 50 00 . P . -l01ebh: - ini ;01eb ed a2 . . - ini ;01ed ed a2 . . - ini ;01ef ed a2 . . - ini ;01f1 ed a2 . . - ini ;01f3 ed a2 . . - ini ;01f5 ed a2 . . - ini ;01f7 ed a2 . . - ini ;01f9 ed a2 . . - ini ;01fb ed a2 . . - ini ;01fd ed a2 . . - ini ;01ff ed a2 . . - ini ;0201 ed a2 . . - ini ;0203 ed a2 . . - ini ;0205 ed a2 . . - ini ;0207 ed a2 . . - ini ;0209 ed a2 . . - jp nz,l01ebh ;020b c2 eb 01 . . . -l020eh: - ini ;020e ed a2 . . - ini ;0210 ed a2 . . - ini ;0212 ed a2 . . - ini ;0214 ed a2 . . - ini ;0216 ed a2 . . - ini ;0218 ed a2 . . - ini ;021a ed a2 . . - ini ;021c ed a2 . . - ini ;021e ed a2 . . - ini ;0220 ed a2 . . - ini ;0222 ed a2 . . - ini ;0224 ed a2 . . - ini ;0226 ed a2 . . - ini ;0228 ed a2 . . - ini ;022a ed a2 . . - ini ;022c ed a2 . . - jp nz,l020eh ;022e c2 0e 02 . . . - ld a,h ;0231 7c | - or l ;0232 b5 . - jr nz,l01c8h ;0233 20 93 . - ld a,0feh ;0235 3e fe > . - out (0e2h),a ;0237 d3 e2 . . - ex af,af' ;0239 08 . - ld hl,0c200h ;023a 21 00 c2 ! . . - ld l,a ;023d 6f o - ld a,(hl) ;023e 7e ~ - out (0e2h),a ;023f d3 e2 . . - ex af,af' ;0241 08 . - ld hl,0c000h ;0242 21 00 c0 ! . . - jr l01c8h ;0245 18 81 . . -l0247h: - pop af ;0247 f1 . - and a ;0248 a7 . - inc b ;0249 04 . - dec b ;024a 05 . - ret z ;024b c8 . - call sub_03aeh ;024c cd ae 03 . . . - ret c ;024f d8 . - call sub_014bh ;0250 cd 4b 01 . K . -l0253h: - ret c ;0253 d8 . - exx ;0254 d9 . - ld c,0e2h ;0255 0e e2 . . - in b,(c) ;0257 ed 40 . @ - exx ;0259 d9 . - out (0e2h),a ;025a d3 e2 . . - ex af,af' ;025c 08 . - ld bc,04153h ;025d 01 53 41 . S A - ld a,030h ;0260 3e 30 > 0 - out (c),a ;0262 ed 79 . y -l0264h: - ld bc,04053h ;0264 01 53 40 . S @ - in a,(c) ;0267 ed 78 . x - bit 7,a ;0269 cb 7f . . - jr nz,l0264h ;026b 20 f7 . - bit 3,a ;026d cb 5f . _ - jp z,l01d9h ;026f ca d9 01 . . . - ld bc,l0150h ;0272 01 50 01 . P . - ld d,020h ;0275 16 20 . -l0277h: - outi ;0277 ed a3 . . - outi ;0279 ed a3 . . - outi ;027b ed a3 . . - outi ;027d ed a3 . . - outi ;027f ed a3 . . - outi ;0281 ed a3 . . - outi ;0283 ed a3 . . - outi ;0285 ed a3 . . - outi ;0287 ed a3 . . - outi ;0289 ed a3 . . - outi ;028b ed a3 . . - outi ;028d ed a3 . . - outi ;028f ed a3 . . - outi ;0291 ed a3 . . - outi ;0293 ed a3 . . - outi ;0295 ed a3 . . - dec d ;0297 15 . - jp nz,l0277h ;0298 c2 77 02 . w . - ld a,h ;029b 7c | - or l ;029c b5 . - jr nz,l0264h ;029d 20 c5 . - ld a,0feh ;029f 3e fe > . - out (0e2h),a ;02a1 d3 e2 . . - ex af,af' ;02a3 08 . - ld hl,0c200h ;02a4 21 00 c2 ! . . - ld l,a ;02a7 6f o - ld a,(hl) ;02a8 7e ~ - out (0e2h),a ;02a9 d3 e2 . . - ex af,af' ;02ab 08 . - ld hl,0c000h ;02ac 21 00 c0 ! . . - jr l0264h ;02af 18 b3 . . -l02b1h: - pop af ;02b1 f1 . - ld a,0a0h ;02b2 3e a0 > . - ld bc,04152h ;02b4 01 52 41 . R A - out (c),a ;02b7 ed 79 . y - ld a,090h ;02b9 3e 90 > . - call sub_03a5h ;02bb cd a5 03 . . . - and a ;02be a7 . - bit 0,a ;02bf cb 47 . G - ret z ;02c1 c8 . - ld bc,#0051 ;02c2 01 51 00 . Q . - in a,(c) ;02c5 ed 78 . x - cp 001h ;02c7 fe 01 . . - ret z ;02c9 c8 . - scf ;02ca 37 7 - ret ;02cb c9 . -l02cch: - pop af ;02cc f1 . - ld e,000h ;02cd 1e 00 . . - ld bc,04152h ;02cf 01 52 41 . R A - ld a,0a0h ;02d2 3e a0 > . - out (c),a ;02d4 ed 79 . y - call sub_02f1h ;02d6 cd f1 02 . . . - jr nz,l02ddh ;02d9 20 02 . - set 0,e ;02db cb c3 . . -l02ddh: - ld bc,04152h ;02dd 01 52 41 . R A - ld a,0b0h ;02e0 3e b0 > . - out (c),a ;02e2 ed 79 . y - call sub_02f1h ;02e4 cd f1 02 . . . - jr nz,l02ebh ;02e7 20 02 . - set 1,e ;02e9 cb cb . . -l02ebh: - ld a,e ;02eb 7b { - and a ;02ec a7 . - scf ;02ed 37 7 - ret z ;02ee c8 . - and a ;02ef a7 . - ret ;02f0 c9 . -sub_02f1h: - ld hl,001feh ;02f1 21 fe 01 ! . . - ld bc,l0152h ;02f4 01 52 01 . R . - out (c),l ;02f7 ed 69 . i - ld bc,l0153h ;02f9 01 53 01 . S . - out (c),h ;02fc ed 61 . a - ld bc,00252h ;02fe 01 52 02 . R . - in a,(c) ;0301 ed 78 . x - cp l ;0303 bd . - ret nz ;0304 c0 . - ld bc,l0253h ;0305 01 53 02 . S . - in a,(c) ;0308 ed 78 . x - cp h ;030a bc . - ret ;030b c9 . -l030ch: - pop af ;030c f1 . - ld bc,04152h ;030d 01 52 41 . R A - ld a,0a0h ;0310 3e a0 > . - out (c),a ;0312 ed 79 . y - call sub_02f1h ;0314 cd f1 02 . . . - jr nz,l0338h ;0317 20 1f . -l0319h: - ld bc,04053h ;0319 01 53 40 . S @ - in a,(c) ;031c ed 78 . x - bit 7,a ;031e cb 7f . . - jr nz,l0319h ;0320 20 f7 . - ld bc,04153h ;0322 01 53 41 . S A - ld a,0ech ;0325 3e ec > . - out (c),a ;0327 ed 79 . y -l0329h: - ld bc,04053h ;0329 01 53 40 . S @ - in a,(c) ;032c ed 78 . x - bit 7,a ;032e cb 7f . . - jr nz,l0329h ;0330 20 f7 . - bit 3,a ;0332 cb 5f . _ - jr nz,l0346h ;0334 20 10 . - scf ;0336 37 7 - ret ;0337 c9 . -l0338h: - ld bc,04152h ;0338 01 52 41 . R A - ld a,0b0h ;033b 3e b0 > . - out (c),a ;033d ed 79 . y - call sub_02f1h ;033f cd f1 02 . . . - jr z,l0319h ;0342 28 d5 ( . - scf ;0344 37 7 - ret ;0345 c9 . -l0346h: - ld bc,#0050 ;0346 01 50 00 . P . - ld hl,0c600h ;0349 21 00 c6 ! . . - in a,(0e2h) ;034c db e2 . . - ld d,a ;034e 57 W - ld a,0feh ;034f 3e fe > . - out (0e2h),a ;0351 d3 e2 . . - inir ;0353 ed b2 . . - inir ;0355 ed b2 . . - ld a,(0c60ch) ;0357 3a 0c c6 : . . - ld c,a ;035a 4f O - ld b,000h ;035b 06 00 . . - ld hl,0 ;035d 21 00 00 ! . . - ld a,(0c606h) ;0360 3a 06 c6 : . . -l0363h: - add hl,bc ;0363 09 . - dec a ;0364 3d = - jr nz,l0363h ;0365 20 fc . - ld (0c604h),hl ;0367 22 04 c6 " . . -l036ah: - ld bc,04053h ;036a 01 53 40 . S @ - in a,(c) ;036d ed 78 . x - bit 7,a ;036f cb 7f . . - jr nz,l036ah ;0371 20 f7 . - ld bc,04152h ;0373 01 52 41 . R A - dec b ;0376 05 . - in a,(c) ;0377 ed 78 . x - and 010h ;0379 e6 10 . . - ld b,a ;037b 47 G - ld a,(0c606h) ;037c 3a 06 c6 : . . - dec a ;037f 3d = - and 00fh ;0380 e6 0f . . - or 0a0h ;0382 f6 a0 . . - or b ;0384 b0 . - ld h,a ;0385 67 g - ld a,(0c663h) ;0386 3a 63 c6 : c . - bit 1,a ;0389 cb 4f . O - jr z,l038fh ;038b 28 02 ( . - set 6,h ;038d cb f4 . . -l038fh: - ld bc,04152h ;038f 01 52 41 . R A - out (c),h ;0392 ed 61 . a - ld a,(0c60ch) ;0394 3a 0c c6 : . . - ld bc,l0152h ;0397 01 52 01 . R . - out (c),a ;039a ed 79 . y - ld a,d ;039c 7a z - out (0e2h),a ;039d d3 e2 . . - ld a,091h ;039f 3e 91 > . - call sub_03a5h ;03a1 cd a5 03 . . . - ret ;03a4 c9 . -sub_03a5h: - call sub_03aeh ;03a5 cd ae 03 . . . - ret c ;03a8 d8 . - ld bc,04153h ;03a9 01 53 41 . S A - out (c),a ;03ac ed 79 . y -sub_03aeh: - push de ;03ae d5 . - push bc ;03af c5 . - push af ;03b0 f5 . - ld de,0 ;03b1 11 00 00 . . . -l03b4h: - ld bc,04053h ;03b4 01 53 40 . S @ - in a,(c) ;03b7 ed 78 . x - bit 7,a ;03b9 cb 7f . . - jr z,l03c7h ;03bb 28 0a ( . - dec de ;03bd 1b . - ld a,d ;03be 7a z - or e ;03bf b3 . - jr nz,l03b4h ;03c0 20 f2 . - pop af ;03c2 f1 . - pop bc ;03c3 c1 . - pop de ;03c4 d1 . - scf ;03c5 37 7 - ret ;03c6 c9 . -l03c7h: - pop af ;03c7 f1 . - pop bc ;03c8 c1 . - pop de ;03c9 d1 . - and a ;03ca a7 . - ret ;03cb c9 . -l03cch: - pop bc ;03cc c1 . - ld l,e ;03cd 6b k - ld e,d ;03ce 5a Z - ld d,ixl ;03cf dd 55 . U - xor a ;03d1 af . - ld h,a ;03d2 67 g - ret ;03d3 c9 . -sub_03d4h: - ld a,ixh ;03d4 dd 7c . | - and a ;03d6 a7 . - scf ;03d7 37 7 - ret nz ;03d8 c0 . - push bc ;03d9 c5 . - ld bc,04152h ;03da 01 52 41 . R A - dec b ;03dd 05 . - in a,(c) ;03de ed 78 . x - bit 6,a ;03e0 cb 77 . w - jr nz,l03cch ;03e2 20 e8 . - push ix ;03e4 dd e5 . . - pop hl ;03e6 e1 . - in a,(0e2h) ;03e7 db e2 . . - ld c,a ;03e9 4f O - ld a,0feh ;03ea 3e fe > . - out (0e2h),a ;03ec d3 e2 . . - ld a,c ;03ee 79 y - ld (0c107h),a ;03ef 32 07 c1 2 . . - ld bc,(0c604h) ;03f2 ed 4b 04 c6 . K . . - ld a,010h ;03f6 3e 10 > . - scf ;03f8 37 7 -l03f9h: - ex de,hl ;03f9 eb . - add hl,hl ;03fa 29 ) - ex de,hl ;03fb eb . - adc hl,hl ;03fc ed 6a . j - sbc hl,bc ;03fe ed 42 . B - jr nc,l0408h ;0400 30 06 0 . - add hl,bc ;0402 09 . - dec a ;0403 3d = - jr nz,l03f9h ;0404 20 f3 . - jr l040ch ;0406 18 04 . . -l0408h: - inc de ;0408 13 . - dec a ;0409 3d = - jr nz,l03f9h ;040a 20 ed . -l040ch: - ld a,(0c60ch) ;040c 3a 0c c6 : . . - ld b,000h ;040f 06 00 . . - ld c,a ;0411 4f O - xor a ;0412 af . -l0413h: - sbc hl,bc ;0413 ed 42 . B - inc a ;0415 3c < - jr nc,l0413h ;0416 30 fb 0 . - dec a ;0418 3d = - add hl,bc ;0419 09 . - inc l ;041a 2c , - ld h,a ;041b 67 g - ld a,(0c107h) ;041c 3a 07 c1 : . . - out (0e2h),a ;041f d3 e2 . . - pop bc ;0421 c1 . - and a ;0422 a7 . - ret ;0423 c9 . -l0424h: - pop af ;0424 f1 . - bit 0,a ;0425 cb 47 . G - ld a,021h ;0427 3e 21 > ! - jr z,l042dh ;0429 28 02 ( . - ld a,001h ;042b 3e 01 > . -l042dh: - out (0bch),a ;042d d3 bc . . - ret ;042f c9 . - -; -;-----------------------------------------------------------------------; - BLOCK #3FD0-$,#FF - push af ;3fd0 f5 . - ld a,000h ;3fd1 3e 00 > . - out (07ch),a ;3fd3 d3 7c . | - pop af ;3fd5 f1 . -l3fd6h: - ret ;3fd6 c9 . -l3fd7h: - jp l0107h ;3fd7 c3 07 01 . . . - - - BLOCK #3FE0-$,#FF -l3fe0h: - ld a,000h ;3fe0 3e 00 > . - out (03ch),a ;3fe2 d3 3c . < - jp l3fe0h ;3fe4 c3 e0 3f . . ? - rst 38h ;3fe7 ff . -l3fe8h: - push af ;3fe8 f5 . - ld a,000h ;3fe9 3e 00 > . - out (07ch),a ;3feb d3 7c . | - jp l0100h ;3fed c3 00 01 . . . -l3ff0h: - push af ;3ff0 f5 . - di ;3ff1 f3 . - ld a,000h ;3ff2 3e 00 > . - out (03ch),a ;3ff4 d3 3c . < - jr l3fd7h ;3ff6 18 df . . - push af ;3ff8 f5 . - ld a,000h ;3ff9 3e 00 > . - out (03ch),a ;3ffb d3 3c . < - jp l3fd6h ;3ffd c3 d6 3f . . ? - - BLOCK #4000-$,0 -;-----------------------------------------------------------------------; diff --git a/src/bios/rom/ROM.asm b/src/bios/rom/ROM.asm index 1fa2ae8..ef96883 100644 --- a/src/bios/rom/ROM.asm +++ b/src/bios/rom/ROM.asm @@ -83,6 +83,269 @@ JPHL: JP (HL) +; +; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; + +; +;----------------------------[ FOR ZX-MODE ]----------------------------; + IF BIOS_ZXMODE +;!HARDCODE на этот адрес #С0 прыгает в vROM Basic-48 по адресу #3CF0 +; можно попробовать переделать этот адрес там +/* + _mInfoBLOCK #C0-$,0 +;BEGIN: +; Вход через USR 15600 +RET_FROM_BIOS_TO_BASIC48: + CALL CH_2 + CALL COMAND_LINE ; ВЫПОЛНЕНИЕ КОМАНДЫ, ЕСЛИ ЕСТЬ + ; Вход без команды + JP SW_ROM_1 ; ВОЗВРАТ В << MAIN MENU >> +*/ +;-----------------------------------------------------------------------; +; + + +; +;----------------------------[ ??????????? ]----------------------------; +; TURBO_OFF: +; LD A,D_TBOFF +; OUT (SYS_PORT.ON),A +; RET +; +; TURBO_ON: +; LD A,D_TBON +; OUT (SYS_PORT.ON),A +; RET +; +; JP_HL: JP (HL) +; +;PRINT_LINE: +; LD A,(HL) +; INC HL +; CP 0FFh +; RET Z +; RST 10H +; JR PRINT_LINE +; +; JP RESET_128 +;-----------------------------------------------------------------------; +; + + +;-----------------------------------------------------------------------; +; ******* SERVICE ******* +;-----------------------------------------------------------------------; + +;------[ ДЕШИФРАЦИЯ КОМАНДНОЙ СТРОКИ,ПЕРЕДАННОЙ ДЛЯ "EXPANSION" ]-------; +COMAND_LINE: + LD HL,(#5C5D) ;!HARDCODE CH_ADR +COMAND_LOOP: + LD A,(HL) + INC HL + CP ":" + JR Z,COMAND_L1 + CP #0D + JR NZ,COMAND_LOOP + RET + +COMAND_L1: + LD A,(HL) + CP #EA ;!HARDCODE + RET NZ + INC HL +COMAND_OK: ; ОБНАРУЖЕНА КОМАНДА ДЛЯ 'expansion' + LD A,(HL) + INC HL + CP ':' + JP Z,MENU_S1 + CP #0D + JP Z,MENU_S1 + CP 'I' + JR Z,COMAND_ISD + CP 'i' + JR Z,COMAND_ISD + CP 'T' + JR Z,TASK_SWITCH + CP 't' + JR Z,TASK_SWITCH + DEC HL + POP BC + JP BASIC_MENU +MENU_S1: + POP BC + CALL SERVICE + JP SW_ROM_1 + +COMAND_ISD: + LD A,(HL) + INC HL + CP 'S' + JP Z,COMAND_ISD2 + CP 's' + JP Z,COMAND_ISD2 + RET + +COMAND_ISD2: + POP BC + CALL ISDOS + JP SW_ROM_1 + + +TASK_SWITCH: +; *** Сохранить задачу *** + PUSH IY + PUSH IX + PUSH AF + PUSH BC + PUSH DE + PUSH HL + + EXX + EX AF,AF' + + PUSH AF + PUSH BC + PUSH DE + PUSH HL + + LD A,R + PUSH AF + LD A,I + PUSH AF + + LD A,(HL) + RLCA + RLCA + RLCA + RLCA + AND 30H ; новая задача 0..3 + LD C,A + + IN A,(SLOT3) + LD B,A ; 3-я страница текущей задачи + LD A,SYS_PAGE + OUT (SLOT3),A + + LD IX,SYS_PAGE.TASK_DATA ; данные задач + LD E,(IX) ; старая задача + LD D,0 + ADD IX,DE ; данные текущей задачи + LD E,16 + ADD IX,DE ; смещение данных в таблице задач + + LD (IX+1),B ; сохранить страницу 3 + LD HL,0 + ADD HL,SP + LD (IX+2),L ; сохранить стек задачи + LD (IX+3),H + SET 0,(IX) ; установить флаг сохраненности текущей задачи + RES 1,(IX) ; установить флаг, что задача покинута + + LD IX,SYS_PAGE.TASK_DATA + LD E,C + LD D,0 + ADD IX,DE ; новая задача + LD E,16 + ADD IX,DE ; смещение данных в таблице задач + + BIT 1,(IX) +; JR NZ,TASK_IN_WORK ; задача в работе ??? неверное завершение + ; сбрасывать или просто возвращаться + + BIT 0,(IX) ; была сохранена/нет + JR NZ,TASK_SET ; задача существует + +; задачи не было! + LD IX,SYS_PAGE.TASK_DATA + LD A,C ; задача + LD (IX),A ; установить новую задачу текущей + + JP SPECTRUM_TASK ; запустить новую задачу! +; и пока пофиг распределение памяти! + +TASK_SET: + LD IX,TASK_RESTORE + LD A,C + EXX + JP INIT_PAGES ; переключить все страницы! + +TASK_RESTORE: + EXX + LD A,SYS_PAGE + OUT (SLOT3),A + LD A,C + LD IX,SYS_PAGE.TASK_DATA + LD (IX),A ; установить новую задачу текущей + + LD E,A + LD D,0 + ADD IX,DE ; новая задача + LD E,16 + ADD IX,DE + + LD L,(IX+2) ; вспомнить стек + LD H,(IX+3) + LD SP,HL + LD A,(IX+1) ; вспомнить третью страницу + OUT (SLOT3),A + + + POP AF ; восстановить + LD I,A + POP AF + LD R,A + POP HL + POP DE + POP BC + POP AF + EX AF,AF' + EXX + POP HL + POP DE + POP BC + POP AF + POP IX + POP IY + ; вернуться в задачу + +NO_TASK: + POP BC + JP SW_ROM_1 + +; 259F - ADRESS BASIC128 - MAIN_MENU +;-----------------------------------------------------------------------; + + + +;-----------------------------------------------------------------------; +; *** UTILITES *** +;-----------------------------------------------------------------------; + +; C_0030: ; получить раб обл +; CALL_48X 0030h +; RET +C_19E8: ; очистить раб обл + CALL_48X #19E8 ;!HARDCODE + RET +C_1655: ; получить пространство + CALL_48X #1655 ;!HARDCODE + RET +CLS: +C_0D6B: CALL_48 #0D6B ;!HARDCODE + RET +CH_2: LD A,2 +C_1601: ; OPEN CHANEL + CALL_48 #1601 ;!HARDCODE + RET + + INCLUDE '../exp/ZX_MENU.ASM' + INCLUDE '../exp/ZX_MODE.ASM' + ENDIF +;-----------------------------------------------------------------------; +; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; +; + + ;-------------[#1000 SETUP]------------- @@ -137,8 +400,146 @@ SETUP_MAIN: INCLUDE 'src/bios/ROM/SETUP/Main.asm' ShowInfo 'Setup block of ROM end', 0 ; !!!!! test BLOCK_Setup.Length EQU $-BLOCK_Setup ;--------------------------------------- +; + + + +; +; !FIXIT сделать эти фиксированные адреса отдельным файлом и с IF/ELSE и подключать их потом куда надо. +; +;????? посмотреть +;----------------------------------------------------------------------; +; BLOCK #3CC0-$,255 + ; no-magics! +;MAGIC_1: ; ЗАГЛУШКА ДЛЯ MAGIC +; PUSH AF +; LD A,ROM.EXT +; OUT (SYS_PORT.OFF),A +; POP AF +; JP MAGIC_1 +;MAGIC_3: +; PUSH AF +; LD A,ROM.EXT +; OUT (SYS_PORT.OFF),A +; POP AF +; RETN +;MAGIC_2: +;; CALL MG_BEGIN +; JR MAGIC_3 + +;************************* + _mInfoBLOCK #3CE0-$,0 +;SW_ROM_1: + LD HL,#259F ;!HARDCODE Show Main Menu in BASIC-128 + PUSH HL + LD HL,#5B00 ;!HARDCODE + LD A,(HL) + CP #F5 ; #F5 - опкод 'PUSH AF'. Проверяется то ли в #5B00 + JR Z,JP_HL_48 ; ВОЗВРАТ К МЕНЮ BASIC128 + POP HL + JR SW_ROM ; ПРОСТОЙ ВОЗВРАТ +;************************* + + _mInfoBLOCK #3CF0-$,0 + IF BIOS_ZXMODE + +;BEGIN: +; Вход через USR 15600 +RET_FROM_BIOS_TO_BASIC48: + CALL CH_2 + CALL COMAND_LINE ; ВЫПОЛНЕНИЕ КОМАНДЫ, ЕСЛИ ЕСТЬ + ; Вход без команды + JR SW_ROM_1 ; ВОЗВРАТ В << MAIN MENU >> + + ENDIF +;JMP_48: +; LD HL,00h +; JR JP_HL_48 +; +; NOP +; NOP +; NOP + +;*************************************** + _mInfoBLOCK #3CF8-$,0 + ; no basic-48! +;JP_HL_48: + PUSH HL +;SW_ROM: + PUSH AF + LD A,ROM.BIOS ;!FIXIT или поставить тут ROM.EXPANSION ??? + OUT (SYS_PORT.RAM),A + POP AF + RET +;*************************************** +;----------------------------------------------------------------------; +; + +;!TODO спектрумовские утилиты +;----------------------------------------------------------------------; + ; _mInfoBLOCK #3CFA-$,#FF + ; LD A,0 ;!HARDCODE + ; OUT (SYS_PORT.OFF),A + ; POP AF +;----------------------------------------------------------------------; +; + + +; +;----------------------------------------------------------------------; + _mInfoBLOCK #3D00-$,#FF +;DOS_ON: + NOP + RET +;*************************************** + +;*************************************** +; BLOCK #3D02-$,FF +; !TODO можно оприходовать тут 17 байтов +; +;*************************************** + +;*************************************** + _mInfoBLOCK #3D13-$,#FF + NOP + JP ToBIOS_18 +;*************************************** + +;*************************************** +; BLOCK #3D17-$,FF +; !TODO можно оприходовать тут 233 байта +; +;*************************************** + +;*************************************** + _mInfoBLOCK #3E00-$,#FF +;DOS_OFF: + DI + PUSH AF + PUSH BC + LD BC,(#5BFF) ; !HARDCODE + LD A,#C9 + LD (#5BFF),A ; !HARDCODE + CALL #5BFF ; !HARDCODE + LD (#5BFF),BC ; !HARDCODE + POP BC + POP AF + RET +;*************************************** + + +;*************************************** +; BLOCK #3E16-$,FF +; !TODO можно оприходовать тут 10 байтов +; +;*************************************** +; + + + +; ;*************************************** ; _mInfoBLOCK #3FC6-$,#FF ;!FIXIT переделать ПЗУ трдоса и спектрумов под правильный вызов функций биоса (а не вместо функций 4x функции 0x) @@ -149,7 +550,7 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup ; ; LD C,A ; POP AF ; SET 6,C -; CALL ToBIOS_FromEXT +; RST_to_BIOS ; JR RET_TO_TRDOS ;*************************************** ; @@ -158,7 +559,7 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup ; call BIOS from EXTENSION ;RST18h: PUSH AF - LD A,ROM.BIOS ; set exp-rom to slot0 + LD A,ROM.BIOS ; set exp-rom to slot0 OUT (SYS_PORT.ROM),A POP AF RET @@ -171,7 +572,7 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup TRDOS_HD_CMD: POP AF SET 6,C ;!FIXIT переделать ПЗУ трдоса и спектрумов под правильный вызов функций биоса (а не вместо функций 4x функции 0x) - CALL ToBIOS_FromEXT + RST_to_BIOS JR RET_TO_TRDOS ;--------------------------------------- diff --git a/src/bios/rom/SETUP/KEY.asm b/src/bios/rom/SETUP/KEY.asm index a9fde70..fe3bd20 100644 --- a/src/bios/rom/SETUP/KEY.asm +++ b/src/bios/rom/SETUP/KEY.asm @@ -356,7 +356,7 @@ SCL_X: LD A,(IX+K_LOCK) ; RET Z ; XOR A ; LD BC,#02FD -; RST ToBIOS_18 +; RST_to_BIOS ; RET ;---------------------------- ;/////////////////////////////////////////////////////////////////////// diff --git a/src/bios/rom/SETUP/MAIN.asm b/src/bios/rom/SETUP/MAIN.asm index 7c5e1b7..1589a63 100644 --- a/src/bios/rom/SETUP/MAIN.asm +++ b/src/bios/rom/SETUP/MAIN.asm @@ -121,7 +121,7 @@ GETTIME: PUSH HL LD D,4 ;HOURS ;LD C,BIOS.CMOS_RD - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_RD CP #24 ;24 jp nc,.error @@ -130,7 +130,7 @@ GETTIME: LD D,2 ;MINUTES ;LD C,BIOS.CMOS_RD - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_RD CP #5A ; 60 jp nc,.error @@ -139,7 +139,7 @@ GETTIME: LD D,0 ;SECONDS ;LD C,BIOS.CMOS_RD - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_RD CP #5A ; 60 jp nc,.error @@ -148,7 +148,7 @@ GETTIME: LD D,7 ;DAY ;LD C,BIOS.CMOS_RD - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_RD CP #32 ;32 jp nc,.error @@ -157,7 +157,7 @@ GETTIME: LD D,8 ;MONTH ;LD C,BIOS.CMOS_RD - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_RD CP #13 ;13 jp nc,.error @@ -166,7 +166,7 @@ GETTIME: LD D,#32 ;CENTURY ;LD C,BIOS.CMOS_RD - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_RD CP #1A ;20 jp c,.error @@ -177,7 +177,7 @@ GETTIME: LD D,9 ;YEAR ;LD C,BIOS.CMOS_RD - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_RD CP #9A ;100 jp nc,.error @@ -200,7 +200,7 @@ GETTIME: ; LD (HL),A ; LD D,#32 ;CENTURY ; LD C,#F7 ; !HARDCODE -; RST ToBIOS_18 +; RST_to_BIOS_18 POP HL RET @@ -246,14 +246,14 @@ GETTIME: CMOSINIT: LD D,CMOS.Register.CTRLregA ; !FIXIT FREQ ;LD C,BIOS.CMOS_RD - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_RD CP #26 ; !FIXIT JR NZ,CMSERR LD D,CMOS.Register.CTRLregC ;LD C,BIOS.CMOS_RD - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_RD CP #50 RET Z @@ -261,19 +261,19 @@ CMSERR: LD D,CMOS.Register.CTRLregB LD A,#82 ;TIME FORMAT ; !FIXIT CMOS ;LD C,BIOS.CMOS_WR - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_WR LD D,CMOS.Register.CTRLregA LD A,#26 ; !FIXIT CMOS FREQ ;LD C,BIOS.CMOS_WR - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_WR LD D,CMOS.Register.CTRLregC LD A,#0 ; !FIXIT CMOS ;LD C,BIOS.CMOS_WR - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_WR LD HL,GETTIME.default_date @@ -282,13 +282,13 @@ CMSERR: LD D,CMOS.Register.CTRLregB LD A,#02 ;TIME FORMAT ; !FIXIT CMOS ;LD C,BIOS.CMOS_WR - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_WR ; LD D,13 ; LD A,#80 ; !FIXIT CMOS ; LD C,#F7 ; !HARDCODE - ; RST ToBIOS_18 + ; RST_to_BIOS RET CLEARM: @@ -317,7 +317,7 @@ MEMLOOP: CALL NZ,RCHAIN DJNZ MEMLOOP ;LD C,BIOS.InitMem - ;RST ToBIOS_18 + ;RST_to_BIOS CALL EMM.InitMem LD BC,#400E ;!HARDCODE CALL G_VALUE @@ -409,7 +409,7 @@ EXIT_SETUP: ; LD (JMPHL),HL ; LD C,#F3 - ; RST ToBIOS_18 + ; RST_to_BIOS ; JMPHL EQU $+1 ; JP #0000 ;-----------------------------------------------------------------------; @@ -424,20 +424,20 @@ INSTALL: LD HL,#0000 LD E,1 ;LD C,BIOS.WIN_OPEN - ;RST ToBIOS_18 + ;RST_to_BIOS CALL WIN_OPEN LD DE,0 LD HL,#2050 ;LD BC,7*256 + BIOS.LP_CLS_WIN - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,7 CALL LP_CLS_WIN LD DE,0 LD HL,#0820 ;LD BC,0*256 + BIOS.LP_CLS_WIN - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,0 CALL LP_CLS_WIN @@ -503,10 +503,10 @@ START: ld (ERRSUM.ErrDateTime),a ; LD C,#97 -; RST ToBIOS_18 +; RST_to_BIOS_18 ; XOR A ; LD C,#F2 -; RST ToBIOS_18 +; RST_to_BIOS_18 ;------------------------------ ;!!!!! посмотреть ; CALL KINIT ;------------------------------ ;!!!!! посмотреть @@ -657,7 +657,7 @@ CHEKOK: ;CALL ScreenPOS.GET_CUR LD A,msgStrings.spMemory CALL POSTMSG ;LD C,BIOS.GetMemSize - ;RST ToBIOS_18 + ;RST_to_BIOS CALL EMM.GetMemSize PUSH BC CALL PMEMORY @@ -786,49 +786,49 @@ writeDateTimeToCmos: ;!FIXIT LD A,(HL) LD D,CMOS.Register.hours ;LD C,BIOS.CMOS_WR - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_WR INC HL LD A,(HL) LD D,CMOS.Register.minutes ;LD C,BIOS.CMOS_WR - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_WR INC HL LD A,(HL) LD D,CMOS.Register.seconds ;LD C,BIOS.CMOS_WR - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_WR INC HL LD A,(HL) LD D,CMOS.Register.date ;LD C,BIOS.CMOS_WR - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_WR INC HL LD A,(HL) LD D,CMOS.Register.month ;LD C,BIOS.CMOS_WR - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_WR INC HL LD A,(HL) LD D,CMOS.Register.century ;LD C,BIOS.CMOS_WR - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_WR INC HL LD A,(HL) LD D,CMOS.Register.year ;LD C,BIOS.CMOS_WR - ;RST ToBIOS_18 + ;RST_to_BIOS CALL CMOS_WR RET @@ -859,31 +859,31 @@ RESCREEN: ; CMOSINIT: ; LD D,10 ;FREQ ; LD C,#F6 ;READ CMOS -; RST ToBIOS_18 +; RST_to_BIOS ; CP #26 ; JR NZ,CMSERR ; LD D,12 ; LD C,#F6 -; RST ToBIOS_18 +; RST_to_BIOS ; CP #50 ; RET Z ; CMSERR: ; LD D,10 ; LD A,#26 ;FREQ ; LD C,#F7 -; RST ToBIOS_18 +; RST_to_BIOS ; LD D,11 ; LD A,#02 ;TIME FORMAT ; LD C,#F7 -; RST ToBIOS_18 +; RST_to_BIOS ; LD D,12 ; LD A,#50 ; LD C,#F7 -; RST ToBIOS_18 +; RST_to_BIOS ; LD D,13 ; LD A,#80 ; LD C,#F7 -; RST ToBIOS_18 +; RST_to_BIOS ; RET ;------------------- ;!!!!! посмотреть @@ -911,14 +911,14 @@ RECOVERYstart: .killRAMdisk: LD A,SYS_PAGE.RAMD_KEYS.NUM-1 LD (.RDkey),A ;LD C,BIOS.FreeMemRMD - ;RST ToBIOS_18 + ;RST_to_BIOS CALL EMM.FreeMemRMD JR NC,.setRAMdisk JR Z,.setRAMdisk RET ; непонятная ошибка - выходим .setRAMdisk: LD A,(.RDkey) ;LD BC,ROM_DISK.Pages.Size * 256 + BIOS.GetMemRMD - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,ROM_DISK.Pages.Size CALL EMM.GetMemRMD JR NC,.IMGread ; свободный рамдиск найден @@ -926,7 +926,7 @@ RECOVERYstart: JR Z,.FreeMem ; ошибка - недостаточно памяти, вызываем очистку памяти RET ; непонятная ошибка - выходим .FreeMem: ;LD C,BIOS.FullInit - ;RST ToBIOS_18 + ;RST_to_BIOS CALL EMM.FullInit JR .killRAMdisk ; @@ -986,7 +986,7 @@ FDSTART: CALL POSTMSG POP AF ;LD C,BIOS.DRV_RESET - ;RST ToBIOS_18 + ;RST_to_BIOS CALL FDD_5x.RESET POP BC RET C @@ -1057,7 +1057,7 @@ OS_LOAD: LD A,B LD BC,1*256 + BIOS.DRV_READ PUSH AF - RST ToBIOS_18 + RST ToBIOS_18 POP BC RET C @@ -1379,7 +1379,7 @@ PIDNUM: LD HL,memBUFFER.ID PIDBOARD: ;LD BC,1*256 + BIOS.FN_CRIPT - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,1 CALL FN_CRIPT @@ -1412,13 +1412,13 @@ PIDBOARD: ; RET NZ ; INC HL ; LD BC,#0286 -; RST ToBIOS_18 +; RST_to_BIOS_18 ; INC HL ; LD BC,#0586 -; RST ToBIOS_18 +; RST_to_BIOS_18 ; INC HL ; LD BC,#0286 -; RST ToBIOS_18 +; RST_to_BIOS_18 ; XOR A ; RET @@ -1433,7 +1433,7 @@ PIDBOARD: ; RET NZ ; INC HL ; LD BC,#0A86 -; JP ToBIOS_18 +; JP_to_BIOS PRNHEX: LD D,A RRCA @@ -1520,7 +1520,7 @@ ZXCLS: LD HL,#4000 GET_ID: LD HL,memBUFFER.ID ;LD C,BIOS.FN_VERSION - ;JP ToBIOS_18 + ;JP_to_BIOS JP FN_VERSION diff --git a/src/bios/rom/SETUP/SETTINGS.asm b/src/bios/rom/SETUP/SETTINGS.asm index fab5e36..5b91ca0 100644 --- a/src/bios/rom/SETUP/SETTINGS.asm +++ b/src/bios/rom/SETUP/SETTINGS.asm @@ -10,7 +10,7 @@ SETTINGS: LD A,(NORCLR) LD B,A ;LD C,BIOS.LP_CLS_WIN - ;RST ToBIOS_18 + ;RST_to_BIOS CALL LP_CLS_WIN @@ -372,13 +372,13 @@ FSCREEN: FSC1: PUSH DE ;LD C,BIOS.LP_SET_PLACE - ;RST ToBIOS_18 + ;RST_to_BIOS CALL LP_SET_PLACE LD A,(NORCLR) LD E,A ;LD BC,#50*256+BIOS.LP_PRINT_ATR ;#5083 - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,#50 CALL LP_PRINT_ATR @@ -661,16 +661,16 @@ TCHEKSM: ; TSTCMOS: ; LD C,BIOS.CMOS_TEST -; JP ToBIOS_18 +; JP_to_BIOS ; RDCMOS: ; LD C,BIOS.CMOS_RD -; JP ToBIOS_18 +; JP_to_BIOS ; WRCMOS: ; LD C,BIOS.CMOS_WR -; JP ToBIOS_18 +; JP_to_BIOS READING: LD D,#0E ; !HARDCODE CMOS @@ -793,7 +793,7 @@ SetTime: ld de,#0C20 ld ix,memBUFFER.Shared ;ld c,BIOS.WIN_COPY - ;RST ToBIOS_18 + ;RST_to_BIOS_18 CALL WIN_COPY LD DE,#0C20 ; !HARDCODE @@ -807,7 +807,7 @@ SetTime: ; печать атрибутов LD E,COLORS.INC.RED ;LD BC,#0E * 256 + BIOS.LP_PRINT_ATR - ;RST ToBIOS_18 + ;RST_to_BIOS_18 LD B,#0E CALL LP_PRINT_ATR @@ -835,7 +835,7 @@ SetTime: ; ld a,#46 ; ex af,af' ; ld c,BIOS.BLK_RD_WR - ; rst ToBIOS_18 + ; RST_to_BIOS_18 ;------------------[^] CALL KEY @@ -844,7 +844,7 @@ SetTime: ld de,#0C20 ld ix,memBUFFER.Shared ;ld c,BIOS.WIN_RESTORE - ;JP ToBIOS_18 + ;JP_to_BIOS ;RET JP WIN_RESTORE @@ -863,7 +863,7 @@ setXYpos: ; dec a ;320 ; .set: ; ld c,BIOS.FN_SYNC -; jp ToBIOS_18 +; JP_to_BIOS setVsinc: ld a,@CMOS.Cell.ScreenSET call READCMS @@ -895,14 +895,14 @@ setInt: ld a,@CMOS.Cell.ScreenSET SRA A SRA A ; byte %00xx0000 --> %000000xx .set: ;ld c,BIOS.FN_SYNC - ;rst ToBIOS_18 + ;RST_to_BIOS_18 CALL FN_SYNC LD IX,win_descriptor.tab80x32 LD HL,#0000 LD E,1 ;LD C,BIOS.WIN_OPEN - ;RST ToBIOS_18 + ;RST_to_BIOS CALL WIN_OPEN ld a,(ITEM) diff --git a/src/bios/rom/SETUP/VIDEO_IO.asm b/src/bios/rom/SETUP/VIDEO_IO.asm index 54487dc..ee00b48 100644 --- a/src/bios/rom/SETUP/VIDEO_IO.asm +++ b/src/bios/rom/SETUP/VIDEO_IO.asm @@ -13,7 +13,7 @@ PIC_SET_PAL_FF EQU def_pal_mask*256+BIOS.PIC_SET_PAL ScreenPOS: ;.GET_CUR: ; LD C,BIOS.LP_GET_PLACE -; JP ToBIOS_18 +; JP_to_BIOS .SUBNAME: ;CALL ScreenPOS.GET_CUR @@ -21,7 +21,7 @@ ScreenPOS: LD E,#24 ;.LOCAT: ; LD C,BIOS.LP_SET_PLACE -; JP ToBIOS_18 +; JP_to_BIOS JP LP_SET_PLACE .CRLF: ;CALL ScreenPOS.GET_CUR @@ -61,12 +61,12 @@ PRINTDW: PRINTA: LD E,A ; LD C,BIOS.LP_PRINT_ATR -; JP ToBIOS_18 +; JP_to_BIOS JP LP_PRINT_ATR PRINT_CHAR: ; LD BC,1*256 + BIOS.LP_PRINT_SYM -; JP ToBIOS_18 +; JP_to_BIOS LD B,1 JP LP_PRINT_SYM ; @@ -78,14 +78,14 @@ TPRINTZ: PRINTZ: LD B,0 LD D,B -; JP ToBIOS_18 +; JP_to_BIOS JP LP_PRINT_LINE6 ; PRINTZ: ; ; LD BC,0*256 + BIOS.LP_PRINT_LINE6 ; LD B,0 ; LD D,B -; ; JP ToBIOS_18 +; ; JP_to_BIOS ; JP LP_PRINT_LINE6 HPRINTZ: @@ -93,7 +93,7 @@ HPRINTZ: LD B,0 LD D,B LD E,#0F - ;JP ToBIOS_18 + ;JP_to_BIOS JP LP_PRINT_LINE5 CPRINTZ: @@ -101,7 +101,7 @@ CPRINTZ: LD B,0 LD D,B LD E,A - ;JP ToBIOS_18 + ;JP_to_BIOS JP LP_PRINT_LINE5 ;HL - NUMBER @@ -250,12 +250,12 @@ PBORDER: RET PRSYM: ;LD BC,1*256 + BIOS.LP_PRINT_SYM - ;JP ToBIOS_18 + ;JP_to_BIOS LD B,1 JP LP_PRINT_SYM ; PRSYMB: LD C,BIOS.LP_PRINT_SYM -; JP ToBIOS_18 +; JP_to_BIOS LOGOTYP: CALL LOGOX @@ -292,13 +292,13 @@ NOWLOGO: EI HALT DI - ;RST ToBIOS_18 + ;RST_to_BIOS CALL WIN_OPEN LD DE,0 LD HL,#0920 ;LOGOTYPE SIZE ;LD BC,7*256 + BIOS.LP_CLS_WIN - ;JP ToBIOS_18 + ;JP_to_BIOS LD B,7 JP LP_CLS_WIN @@ -314,7 +314,7 @@ LOGOX: LD IX,win_descriptor.tab320x256 LD HL,#0000 LD E,1 ;LD C,BIOS.WIN_OPEN - ;RST ToBIOS_18 + ;RST_to_BIOS CALL WIN_OPEN SAFE_PORTY @@ -339,7 +339,7 @@ LOGOX: LD IX,win_descriptor.tab320x256 LD D,A ; SET DESKTOP PALETTE & CURSOR COLORS LD E,A ;LD BC,PIC_SET_PAL_FF - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL @@ -413,7 +413,7 @@ FADE: XOR A LD D,A LD E,A ;LD BC,PIC_SET_PAL_FF ; !HARDCODE #EE,#EF - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL @@ -435,7 +435,7 @@ go_setup: ; !FIXIT LD HL,#0000 LD E,1 ;LD C,BIOS.WIN_OPEN - ;RST ToBIOS_18 + ;RST_to_BIOS CALL WIN_OPEN JP CSETUP @@ -532,7 +532,7 @@ SET_CGA: LD HL,memBUFFER.Shared LD DE,#0000 ; D - ELEMENTS,E - COLOR ;LD BC,PIC_SET_PAL_FF ; #FFA4 - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL @@ -540,7 +540,7 @@ SET_CGA: LD HL,memBUFFER.Shared LD DE,#0000 ;D - ELEMENTS,E - COLOR ;LD BC,PIC_SET_PAL_FF ; #FFA4 - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL @@ -548,7 +548,7 @@ SET_CGA: LD HL,#80*4+memBUFFER.Shared LD DE,#8080 ;D - ELEMENTS,E - COLOR ;LD BC,PIC_SET_PAL_FF ; #FFA4 - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL ; @@ -558,7 +558,7 @@ SET_CGA: LD HL,memBUFFER.Shared LD DE,#0000 ;D - ELEMENTS,E - COLOR ;LD BC,PIC_SET_PAL_FF ; #FFA4 - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL @@ -566,7 +566,7 @@ SET_CGA: LD HL,memBUFFER.Shared LD DE,#8000 ;D - ELEMENTS,E - COLOR ;LD BC,PIC_SET_PAL_FF ; #FFA4 - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL ; diff --git a/src/bios/shared/CompMacro.asm b/src/bios/shared/CompMacro.asm index cdf63c9..dffa857 100644 --- a/src/bios/shared/CompMacro.asm +++ b/src/bios/shared/CompMacro.asm @@ -63,7 +63,7 @@ LD (RECOVERYstart.RDkey),A PUSH BC ;LD BC,ROM_DISK.Pages.Size * 256 + BIOS.GetMemRMD - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,ROM_DISK.Pages.Size CALL EMM.GetMemRMD POP BC @@ -83,7 +83,7 @@ LD HL,TEMP ;LD C,BIOS.GetMemBlkPages - ;RST ToBIOS_18 ; кидаем в буфер номера страниц RAM disk + ;RST_to_BIOS ; кидаем в буфер номера страниц RAM disk CALL EMM.GetMemBlkPages IN A,(SLOT3) @@ -143,7 +143,7 @@ EX AF,AF' LD HL,TEMP ;адрес буфера данных ;LD BC,2*256 + BIOS.BLK_RD_WR ;число секторов и номер функции - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,2 CALL BLK_RD_WR @@ -158,7 +158,7 @@ EX AF,AF' LD HL,TEMP ;адрес буфера данных ;LD BC,2*256 + BIOS.BLK_RD_WR ;число секторов и номер функции - ;RST ToBIOS_18 + ;RST_to_BIOS LD B,2 ;число секторов CALL BLK_RD_WR @@ -171,4 +171,25 @@ ASSERT 0, Invalid 'RECOVERYmountTYPE' variant - RECOVERYmountTYPE ENDIF ENDM -; \ No newline at end of file +; + +; + MACRO RST_to_BIOS + IF (IsInBIOS = 0) && ($ < #4000) + CALL ToBIOS_FromEXT + ELSE + RST ToBIOS_18 + ENDIF + ENDM + +; + +; + MACRO JP_to_BIOS + IF (IsInBIOS = 0) && ($ < #4000) + JP ToBIOS_FromEXT + ELSE + JP ToBIOS_18 + ENDIF + ENDM +; diff --git a/src/bios/shared/DEFINES.INC b/src/bios/shared/DEFINES.INC index 5dacf55..8cbb5be 100644 --- a/src/bios/shared/DEFINES.INC +++ b/src/bios/shared/DEFINES.INC @@ -15,7 +15,7 @@ DEFINE SP2000_ConfID #FEFF - DEFINE BIOS_ZXMODE 0 + DEFINE BIOS_ZXMODE 1 ; Задержка в кадрах после отрисовки логотипа (0 = 256) DEFINE LOGO_DELAY_MIN 25 From ac41dad886e1e3b62cecd780543d3b1b1cb1681a Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Wed, 21 Jun 2023 21:50:05 +1000 Subject: [PATCH 004/267] zx-roms adaptation in progress --- Shared_Includes | 2 +- src/bios/exp/EXP.asm | 6 +- src/bios/exp/ZX_MENU.ASM | 152 +++++++++++++++++++---------------- src/bios/exp/ZX_MODE.ASM | 12 +-- src/bios/rom/ROM.asm | 4 +- src/bios/shared/DEFINES.INC | 2 +- src/bios/shared/includes.inc | 13 +-- 7 files changed, 105 insertions(+), 86 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index 80b60f7..d8f20a3 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 80b60f7294ce3eee958a0c4e9a6f29577cee496f +Subproject commit d8f20a33b9525ba38e6f87956f88081375a81526 diff --git a/src/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index c92c9db..fdcd90a 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -1345,11 +1345,11 @@ SW_ROM_1: ;*************************************** _mInfoBLOCK #3CF8-$,0 ; no basic-48! -JP_HL_48: +;JP_HL_48: PUSH HL -SW_ROM: +;SW_ROM: PUSH AF - LD A,ROM.BIOS + LD A,ROM.BIOS ;!FIXIT неправильное название константы OUT (SYS_PORT.RAM),A POP AF RET diff --git a/src/bios/exp/ZX_MENU.ASM b/src/bios/exp/ZX_MENU.ASM index 6caae58..79f5a03 100644 --- a/src/bios/exp/ZX_MENU.ASM +++ b/src/bios/exp/ZX_MENU.ASM @@ -8,11 +8,18 @@ ; если A=-1, то возврат, ; иначе выполнение ;***************************** - - EXEC_PNT: INC A RET Z + ;!FIXIT почему не так? + ; DEC A + ; JR Z,EXEC_HL + ; LD D,0 + ; LD E,A + ; XOR A + ; ADC HL,DE + ; ADC HL,DE + ; EXEC_PNT_LOOP: DEC A JR Z,EXEC_HL @@ -33,9 +40,9 @@ RET_FROM_M: ;**************************************** ; РАБОТА С MENU_128 ;**************************************** -; ВХОД: - DE - адрес меню -; BC - длина меню -; ВЫХОД: A - выбранный пункт +; ВХОД: DE - адрес меню +; BC - длина меню +; ВЫХОД: A - выбранный пункт ;**************************************** RUN_MENU: PUSH IX @@ -44,25 +51,25 @@ RUN_MENU: LD A,(DE) DEC A ; число CMD - CP 9 + CP 9 ; !HARDCODE макисмальное число пунктов меню JR C,RUN_M_1 RUN_MN_ERR: POP BC POP DE - LD A,0FFh ; вернуться с номером 255 - ошибка + LD A,#FF ; вернуться с номером 255 - ошибка POP IX RET RUN_M_1: - LD A,(5B00H) - CP #F5 ; СРАВНИТЬ А С КОДОМ PUSH AF + LD A,(ZX_VARS.SWAP_ROM) + CP #F5 ; сравнить А с опкодом PUSH AF JR NZ,RUN_MN_ERR LD HL,LEN_P_M - ADD HL,BC ; HL - нужная длина памяти - LD B,H ; HL -> BC + ADD HL,BC ; HL - нужная длина памяти + LD B,H ; HL -> BC LD C,L - LD HL,(5C61h) ; HL - начало раб обл + LD HL,(ZX_VARS.WORK_SPACE) ; HL - начало раб обл PUSH BC PUSH HL @@ -105,10 +112,11 @@ JP_HL: JP (HL) ;************************************** ; 128k MENU ;************************************** -MENU_PROG EQU 25B9h -SWAP_ROM EQU 5B00h -NEW_SP EQU 1F45h -RET_SP EQU 1F20h +;!HARDCODE +MENU_PROG EQU #25B9 ; #25B9 in sp_128.asm +;SWAP_ROM EQU #5B00 +NEW_SP EQU #1F45 ; L1F45: in sp_128.asm +RET_SP EQU #1F20 ; L1F20: in sp_128.asm ;************************************** ; Программа вызова MENU_128 из ОЗУ. @@ -131,33 +139,35 @@ MN_128_S: ; Эта программа перемещается в озу ;************************************** MENU_128: - LD A,0 - OUT (SYS_PORT.OFF),A - CALL SWAP_ROM + XOR A + OUT (SYS_PORT.RAM),A + CALL ZX_VARS.SWAP_ROM CALL NEW_SP SH_1: LD DE,MENU_DAT - MENU_128 - LD HL,#F6EA + LD HL,ZX_VARS.MENU_TBL.JUMP LD BC,4 LDIR SH_2: LD HL,MENU_128_E - MENU_128 - LD (#F6EA),HL + LD (ZX_VARS.MENU_TBL.JUMP),HL SH_3: LD HL,MENU_128_E2 - MENU_128 - LD (#F6EC),HL + LD (ZX_VARS.MENU_TBL.TEXT),HL JP MENU_PROG RET_M EQU $-MENU_128 SH_4: LD HL,MENU_DAT - MENU_128 - LD DE,#F6EA + LD DE,ZX_VARS.MENU_TBL.JUMP LD BC,4 LDIR CALL RET_SP - CALL SWAP_ROM + CALL ZX_VARS.SWAP_ROM EX AF,AF' - LD A,0 - OUT (CNF_PORT),A + ;LD A,0 + ;OUT (CNF_PORT),A + LD A,SYS_PORT.EXTENSION + OUT (SYS_PORT.ROM),A ;!!!!! версия для ПЗУ EX AF,AF' RET MENU_DAT: @@ -186,7 +196,7 @@ LEN_P_M EQU $-MENU_128 ;************************************** ; RST 30 - получение BC SPACES с адреса HL -; 19E8h - освобождение BC spaces с адреса HL +; #19E8 - освобождение BC spaces с адреса HL ; HL - раб. ячейка ; BC - адрес программы ; DE - адрес данных для перемещения @@ -276,8 +286,8 @@ ERR_TST_M: ;************************************** CALL_DOS_MOVE: - LD DE,#5C00 - DOS_PROG.Size ;!HARDCODE LD HL,DOS_PROG + LD DE,DOS_PROG.Exec LD BC,DOS_PROG.Size LDIR RET @@ -290,50 +300,56 @@ CALL_DOS1: LD DE,(ZX_VARS.E_LINE) LD (ZX_VARS.CH_ADR),DE LDIR - LD (ZX_VARS.WORK_SP),DE + LD (ZX_VARS.WORK_SPACE),DE LD (ZX_VARS.STK_BOT),DE LD (ZX_VARS.STK_END),DE CALL CALL_DOS_MOVE - JP #5C00 - DOS_PROG.Size -CALL_DOS: - PUSH HL - PUSH DE - PUSH BC - PUSH AF - CALL CALL_DOS_MOVE - LD A,13H - LD (5C00H-DOS_PROG.Size+DOS_PROG_A),A - POP AF - POP BC - POP DE - POP HL - JP #5C00-DOS_PROG.Size + JP DOS_PROG.Exec DOS_PROG: - PUSH AF - XOR A - OUT (SYS_PORT.OFF),A - POP AF - CALL #3D03 ;!HARDCODE -DOS_PROG_A EQU $-DOS_PROG-1 - PUSH AF - LD A,0 - OUT (CNF_PORT),A - POP AF - RET -DOS_PROG.Size EQU $-DOS_PROG + DISP #5C00 - DOS_PROG.Size ;!HARDCODE + //DOS_PROG: +.Exec: PUSH AF + XOR A + OUT (SYS_PORT.RAM),A + POP AF + //DOS_PROG_A+1: +.Patch+2: CALL #3D03 ;!HARDCODE + PUSH AF + ;!FIXIT сделать через условие компиляции ZX_ROM_BIOS + //LD A,0 + //OUT (CNF_PORT),A + LD A,SYS_PORT.EXTENSION + OUT (SYS_PORT.ROM),A ;!!!!! версия для ПЗУ + POP AF + RET + //DOS_PROG_LEN +.Size EQU $ - .Exec + ENT + ;????? вроде, не используются CONT_PROG: - LD HL,1AFDH - PUSH HL - LD HL,5B00H - PUSH HL - LD DE,5C71H - LD BC,1 - LD A,0E8H - LD (DE),A - JP SW_ROM - - - - + LD HL,#1AFD ;!HARDCODE COM_LN: + PUSH HL + LD HL,#5B00 ;!HARDCODE + PUSH HL + LD DE,ZX_VARS.FLG_INPUT + LD BC,1 + LD A,#E8 ;!HARDCODE + LD (DE),A + JP SW_ROM +CALL_DOS: + PUSH HL + PUSH DE + PUSH BC + PUSH AF + CALL CALL_DOS_MOVE + LD A,#13 ;!HARDCODE #13 из AUTO_1303 + LD (DOS_PROG.Patch),A + POP AF + POP BC + POP DE + POP HL + JP DOS_PROG.Exec + ; +; \ No newline at end of file diff --git a/src/bios/exp/ZX_MODE.ASM b/src/bios/exp/ZX_MODE.ASM index 6114789..25d2385 100644 --- a/src/bios/exp/ZX_MODE.ASM +++ b/src/bios/exp/ZX_MODE.ASM @@ -1,12 +1,13 @@ ;.PRINTX "Service." SERVICE: - LD HL,SR_TAB + //LD HL,SR_TAB LD DE,SR_MENU LD BC,SR_MENU.Size - PUSH HL + //PUSH HL CALL RUN_MENU ;09f3 - POP HL + LD HL,SR_TAB + //POP HL CALL EXEC_PNT JR SERVICE @@ -29,7 +30,7 @@ SR_MENU: DC 'TURBO ON ' DC 'Clear RAM' DC 'RETURN' - DC ' ' ; маркер конца + DC " " ; маркер конца .Size EQU $-SR_MENU ;***************************** @@ -136,7 +137,7 @@ IS_MENU: DC 'Pentagon 512' DC 'Restart ' DC 'RETURN' - DC ' ' ; маркер конца + DC " " ; маркер конца .Size EQU $-IS_MENU ;****************************** @@ -267,6 +268,7 @@ CNF_PN_320: LD A,Port_VSYNC.SET_320L OUT (Port_VSYNC),A RET + ; LD A,CNF_0 ; OUT (SYS_PORT.ROM),A ; CALL DOS_OFF diff --git a/src/bios/rom/ROM.asm b/src/bios/rom/ROM.asm index ef96883..7748c44 100644 --- a/src/bios/rom/ROM.asm +++ b/src/bios/rom/ROM.asm @@ -465,9 +465,9 @@ RET_FROM_BIOS_TO_BASIC48: ;*************************************** _mInfoBLOCK #3CF8-$,0 ; no basic-48! -;JP_HL_48: +JP_HL_48: PUSH HL -;SW_ROM: +SW_ROM: PUSH AF LD A,ROM.BIOS ;!FIXIT или поставить тут ROM.EXPANSION ??? OUT (SYS_PORT.RAM),A diff --git a/src/bios/shared/DEFINES.INC b/src/bios/shared/DEFINES.INC index 8cbb5be..4e048b8 100644 --- a/src/bios/shared/DEFINES.INC +++ b/src/bios/shared/DEFINES.INC @@ -6,7 +6,7 @@ DEFINE PACKED_MAIN 0;| | ; паковать MAIN или влезает без этого? DEFINE SetFullZXromLoader 0;| ; добавлять в прошивку и грузить все ROM спектрума или часть? DEFINE IDE_Optimization 1;| ; слегка оптимизирует некоторые процедуры работы с HDD - DEFINE NeedSafePort_Y 1;| ============== ; говорит само за себя))) + DEFINE NeedSafePort_Y 1;| ============== ; !!!!! если 0, то в режиме sp-спектрума некоторые процедуры могут засрать экран DEFINE Pashalki 0; \__________________/\ DEFINE PICTURE_FILE './src/bios/logo/psfathers.bmp';| ;____________________________________________________________/ diff --git a/src/bios/shared/includes.inc b/src/bios/shared/includes.inc index f94f13f..bac6d14 100644 --- a/src/bios/shared/includes.inc +++ b/src/bios/shared/includes.inc @@ -1,15 +1,16 @@ ; ;---------[All shared includes]--------- - INCLUDE 'src/bios/shared/DEFINES.INC' ; Shared defines + INCLUDE 'src/bios/shared/DEFINES.INC' ; Shared defines IF Pashalki INCLUDE 'Shared_Includes/structures/EasterSprites.inc' ENDIF - INCLUDE 'src/bios/Loader/Loader.asm' ; Bitstream loader as macros - INCLUDE 'src/bios/shared/CompMacro.asm' ; макросы - INCLUDE 'Shared_Includes/constants/SP2000.inc' ; константы + INCLUDE 'src/bios/Loader/Loader.asm' ; Bitstream loader as macros + INCLUDE 'src/bios/shared/CompMacro.asm' ; макросы + INCLUDE 'Shared_Includes/constants/SP2000.inc' ; константы + INCLUDE 'Shared_Includes/constants/zx_char_codes.inc' ; константы INCLUDE 'Shared_Includes/macroses/macros.z80' - INCLUDE 'src/bios/ROM/MEM_MAP.inc' ; карта памяти - INCLUDE 'src/bios/shared/VERSION.inc' ; Версия EXP и ROM + INCLUDE 'src/bios/ROM/MEM_MAP.inc' ; карта памяти + INCLUDE 'src/bios/shared/VERSION.inc' ; Версия EXP и ROM INCLUDE 'Shared_Includes/constants/BIOS_EQU.inc' INCLUDE 'src/bios/ROM/BIOS.inc' ;--------------------------------------- From 8149a4fe35930e416809f9e0123ca11bc8cc8fa5 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Wed, 21 Jun 2023 21:52:58 +1000 Subject: [PATCH 005/267] shered update --- Shared_Includes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Shared_Includes b/Shared_Includes index d8f20a3..443b74c 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit d8f20a33b9525ba38e6f87956f88081375a81526 +Subproject commit 443b74c15de8cea63ca89aa89bbb6d60407dc5d0 From 0bfa4f072b0d52296c46a9a1909e0066de7ecaec Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Thu, 22 Jun 2023 04:40:40 +1000 Subject: [PATCH 006/267] testing adaptation to zx-roms --- Shared_Includes | 2 +- src/ZX_ROMS/new/SP_128.bin | Bin 0 -> 16384 bytes src/ZX_ROMS/new/SP_TRDOS.bin | Bin 0 -> 16384 bytes src/ZX_ROMS/new/SP__48.bin | Bin 0 -> 16384 bytes src/ZX_ROMS/sp_128.bin.hst | Bin 12299 -> 0 bytes src/ZX_ROMS/sp__48.bin.hst | Bin 13231 -> 0 bytes src/ZX_ROMS/sp_exp.bin.hst | Bin 7065 -> 0 bytes src/ZX_ROMS/sp_trd.bin.hst | Bin 11500 -> 0 bytes src/bios/BUILD.a80 | 8 +++---- src/bios/exp/EXP.asm | 7 +++--- src/bios/exp/EXTENDED/HDD_DRIVER_6.asm | 28 +++++++++++----------- src/bios/exp/ZX_MODE.ASM | 31 ++++++++++++++++++------- src/bios/rom/ROM.asm | 10 ++++---- 13 files changed, 50 insertions(+), 36 deletions(-) create mode 100644 src/ZX_ROMS/new/SP_128.bin create mode 100644 src/ZX_ROMS/new/SP_TRDOS.bin create mode 100644 src/ZX_ROMS/new/SP__48.bin delete mode 100644 src/ZX_ROMS/sp_128.bin.hst delete mode 100644 src/ZX_ROMS/sp__48.bin.hst delete mode 100644 src/ZX_ROMS/sp_exp.bin.hst delete mode 100644 src/ZX_ROMS/sp_trd.bin.hst diff --git a/Shared_Includes b/Shared_Includes index 443b74c..95c15f4 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 443b74c15de8cea63ca89aa89bbb6d60407dc5d0 +Subproject commit 95c15f46dcd79b9ea7f60eca0011152305fbc366 diff --git a/src/ZX_ROMS/new/SP_128.bin b/src/ZX_ROMS/new/SP_128.bin new file mode 100644 index 0000000000000000000000000000000000000000..f9b0499776493636bf16dc207a6456c262b3422e GIT binary patch literal 16384 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 lW>!v#$n+^_?F7N{{ey)(?I|L literal 0 HcmV?d00001 diff --git a/src/ZX_ROMS/new/SP__48.bin b/src/ZX_ROMS/new/SP__48.bin new file mode 100644 index 0000000000000000000000000000000000000000..7ec521619110f77322953a59e750856c1ab41110 GIT binary patch literal 16384 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 diff --git a/src/ZX_ROMS/sp__48.bin.hst b/src/ZX_ROMS/sp__48.bin.hst deleted file mode 100644 index 1e46c5784a02096a7b65e727c70e5c4804658e02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13231 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 diff --git a/src/ZX_ROMS/sp_exp.bin.hst b/src/ZX_ROMS/sp_exp.bin.hst deleted file mode 100644 index c707648e38de70ba87f0cdee767eb0c228c167ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7065 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 -*/ + ;-----------------------------------------------------------------------; ; @@ -444,7 +444,7 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup _mInfoBLOCK #3CF0-$,0 IF BIOS_ZXMODE - +/* ;BEGIN: ; Вход через USR 15600 RET_FROM_BIOS_TO_BASIC48: @@ -452,7 +452,7 @@ RET_FROM_BIOS_TO_BASIC48: CALL COMAND_LINE ; ВЫПОЛНЕНИЕ КОМАНДЫ, ЕСЛИ ЕСТЬ ; Вход без команды JR SW_ROM_1 ; ВОЗВРАТ В << MAIN MENU >> - +*/ ENDIF ;JMP_48: ; LD HL,00h @@ -469,7 +469,7 @@ JP_HL_48: PUSH HL SW_ROM: PUSH AF - LD A,ROM.BIOS ;!FIXIT или поставить тут ROM.EXPANSION ??? + LD A,ROM.BIOS OUT (SYS_PORT.RAM),A POP AF RET From 51aed642b0bd476dc0fdd1689e5580fe4036b76f Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Fri, 23 Jun 2023 00:55:35 +1000 Subject: [PATCH 007/267] ZX vROM's now works with Sp2000 ROM --- src/ZX_ROMS/new/SP_128.bin | Bin 16384 -> 16384 bytes src/ZX_ROMS/new/ZX_EXP.bin | Bin 0 -> 16384 bytes src/ZX_ROMS/new/ZX_EXP2.bin | Bin 0 -> 16384 bytes src/bios/BUILD.a80 | 21 +++++++++++++++++---- 4 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 src/ZX_ROMS/new/ZX_EXP.bin create mode 100644 src/ZX_ROMS/new/ZX_EXP2.bin diff --git a/src/ZX_ROMS/new/SP_128.bin b/src/ZX_ROMS/new/SP_128.bin index f9b0499776493636bf16dc207a6456c262b3422e..4aa5801733ecc31d04d8f8f5541fbf41a886f030 100644 GIT binary patch delta 16 XcmZo@U~Fh$+~C2;7_r%tal0J=E&>Hd delta 16 XcmZo@U~Fh$+~C2;D6-j;al0J=ENTS< diff --git a/src/ZX_ROMS/new/ZX_EXP.bin b/src/ZX_ROMS/new/ZX_EXP.bin new file mode 100644 index 0000000000000000000000000000000000000000..b63be1f45a4fca42b8fc159b04f4274d3b3286ae GIT binary patch literal 16384 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 VVd1Q=FguxoKNg>8{ytRke*hfLtk(bl literal 0 HcmV?d00001 diff --git a/src/ZX_ROMS/new/ZX_EXP2.bin b/src/ZX_ROMS/new/ZX_EXP2.bin new file mode 100644 index 0000000000000000000000000000000000000000..20c59953d0dfd8001818a794102abf71151b9a28 GIT binary patch literal 16384 zcmeI(Pe>F|90&0CcE@!MGeeSvpk|}P1|60iZ@s>eFQ6N%M~bXr;RdudhmHFH6&J=`(vdUM;+&oOj94`pSg82nk_fEO|v1x zIYao6I?lAb>g1sn`YB|Z^S(O83}tbHH!T0oRry1xVsPPqkK$RJ@I9H zsy}=)W5xn5^D|G&`uK;-`)Am))knNbL+k@y2GbViN+${VktuNO^ze-Q$w|)h)|2zP zksQ2H?4Im5ilh9U&+$}zyO~4sT5)B0$&QKAv`f`V)+S}t`q27?b#{xj20gsIO`p`D z$c(S+A+br;+7#SUYA*JNtCN0El=y$YM;#+wO?M08VN?1;WJf%|lP0vZDW3S=i?}KMF7h4y CRSqct literal 0 HcmV?d00001 diff --git a/src/bios/BUILD.a80 b/src/bios/BUILD.a80 index efc474e..ca12ebb 100644 --- a/src/bios/BUILD.a80 +++ b/src/bios/BUILD.a80 @@ -32,6 +32,19 @@ ENDM ;[--------------------------------------------------------------------------] + IF BIOS_ZXMODE + DEFINE SP_128_BIN INCBIN 'src/ZX_ROMS/NEW/SP_128.BIN' + DEFINE SP__48_BIN INCBIN 'src/ZX_ROMS/NEW/SP__48.BIN' + DEFINE SP_TRDOS_BIN INCBIN 'src/ZX_ROMS/NEW/SP_TRDOS.BIN' + DEFINE SP_EXP_BIN ;INCBIN 'src/ZX_ROMS/SP_EXP.BIN' + ELSE + DEFINE SP_128_BIN INCBIN 'src/ZX_ROMS/SP_128.BIN' + DEFINE SP__48_BIN INCBIN 'src/ZX_ROMS/SP__48.BIN' + DEFINE SP_TRDOS_BIN INCBIN 'src/ZX_ROMS/SP_TRD.BIN' + DEFINE SP_EXP_BIN INCBIN 'src/ZX_ROMS/SP_EXP.BIN' + ENDIF + + ;[--------------------------------------------------------------------------] MACRO ROM_BUILD bitstream @@ -49,19 +62,19 @@ ; ;PAGE 2 ZX Page - #42 - INCBIN 'src/ZX_ROMS/NEW/SP_128.BIN' + SP_128_BIN Set_Block 'SP_128 free space: ', #C000 ; ;PAGE 3 ZX Page - #43 - INCBIN 'src/ZX_ROMS/NEW/SP__48.BIN' + SP__48_BIN Set_Block 'SP_48 free space: ', #10000 ; ;PAGE 4 ZX Page - #44 - INCBIN 'src/ZX_ROMS/NEW/SP_TRDOS.BIN' + SP_TRDOS_BIN Set_Block 'SP_TRD free space: ', #14000 ; ;PAGE 5 ZX Page - #45 - ;INCBIN 'src/ZX_ROMS/SP_EXP.BIN' + SP_EXP_BIN Set_Block 'SP_EXP free space: ', #18000 IF SetFullZXromLoader From 0b627948aad54533d818d5a84912e6c89314bfab Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Sat, 24 Jun 2023 05:49:13 +1000 Subject: [PATCH 008/267] ZX-ROMS - 3 Pages --- Make_all.cmd | 7 - ZXMAK2.cmd | 20 -- __make_all_.cmd | 7 - clean_all.cmd | 13 - copy_to_zxmak2.cmd | 20 -- make_and_start_emul_.cmd | 4 - src/ZX_ROMS/SP_128.BIN | Bin 16384 -> 0 bytes src/ZX_ROMS/SP_EXP.BIN | Bin 16384 -> 0 bytes src/ZX_ROMS/SP_EXP2.BIN | Bin 16384 -> 0 bytes src/ZX_ROMS/SP_TRD.BIN | Bin 16384 -> 0 bytes src/ZX_ROMS/SP__48.BIN | Bin 16384 -> 0 bytes src/bios/exp/ZX_MODE.ASM | 395 --------------------------- src/bios/exp/clean.cmd | 4 - src/bios/exp/make.cmd | 20 -- src/bios/loader/clean.cmd | 4 - src/bios/loader/make.cmd | 23 -- src/bios/loader/make_vs.cmd | 27 -- src/bios/{exp => rom/ZX}/ZX_MENU.ASM | 0 src/bios/rom/clean.cmd | 5 - src/bios/rom/make.cmd | 46 ---- start_emul.cmd | 1 - 21 files changed, 596 deletions(-) delete mode 100644 Make_all.cmd delete mode 100644 ZXMAK2.cmd delete mode 100644 __make_all_.cmd delete mode 100644 clean_all.cmd delete mode 100644 copy_to_zxmak2.cmd delete mode 100644 make_and_start_emul_.cmd delete mode 100644 src/ZX_ROMS/SP_128.BIN delete mode 100644 src/ZX_ROMS/SP_EXP.BIN delete mode 100644 src/ZX_ROMS/SP_EXP2.BIN delete mode 100644 src/ZX_ROMS/SP_TRD.BIN delete mode 100644 src/ZX_ROMS/SP__48.BIN delete mode 100644 src/bios/exp/ZX_MODE.ASM delete mode 100644 src/bios/exp/clean.cmd delete mode 100644 src/bios/exp/make.cmd delete mode 100644 src/bios/loader/clean.cmd delete mode 100644 src/bios/loader/make.cmd delete mode 100644 src/bios/loader/make_vs.cmd rename src/bios/{exp => rom/ZX}/ZX_MENU.ASM (100%) delete mode 100644 src/bios/rom/clean.cmd delete mode 100644 src/bios/rom/make.cmd delete mode 100644 start_emul.cmd diff --git a/Make_all.cmd b/Make_all.cmd deleted file mode 100644 index e7242d2..0000000 --- a/Make_all.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@echo off - -cd src -call make_firmware.cmd -call build_firmware.cmd -cd .. - diff --git a/ZXMAK2.cmd b/ZXMAK2.cmd deleted file mode 100644 index 635c7ad..0000000 --- a/ZXMAK2.cmd +++ /dev/null @@ -1,20 +0,0 @@ -@rem COPY ROM TO EMULATOR -@rem -@echo -------------------------------------------------------[Copy to emul start] -@mkdir SPRINTER -@copy Build\_SPRIN.BIN SPRINTER\SP_304.BIN -@if errorlevel 1 goto error -@"C:\Program Files\7-Zip\7z.exe" a "Shared_Includes\Hide\Emulators\ZXMAK2\ROMS.PAK" SPRINTER\SP_304.BIN -@if errorlevel 1 goto error -@del SPRINTER\SP_304.BIN -@rmdir SPRINTER - -@goto quit - -:error -@echo ERROR during copying to emulator -@pause 0 -@exit 3 - -:quit -@echo -------------------------------------------------------[Copy to emul done] \ No newline at end of file diff --git a/__make_all_.cmd b/__make_all_.cmd deleted file mode 100644 index 5ce1d0d..0000000 --- a/__make_all_.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@if [%1]==[] (set NO_STOP="3") else (set NO_STOP=%1) -@set error_level="0" -@cd src -@call make_firmware.cmd %NO_STOP% -@cd .. -@call build_firmware.cmd %NO_STOP% -@cd .. diff --git a/clean_all.cmd b/clean_all.cmd deleted file mode 100644 index 9083b37..0000000 --- a/clean_all.cmd +++ /dev/null @@ -1,13 +0,0 @@ -cd src\altera\acex -rem call clean.cmd -cd ..\..\ -cd bios\loader -call clean.cmd -cd ..\exp -call clean.cmd -cd ..\logo -call clean.cmd -cd ..\rom -call clean.cmd -pause 0 - diff --git a/copy_to_zxmak2.cmd b/copy_to_zxmak2.cmd deleted file mode 100644 index 635c7ad..0000000 --- a/copy_to_zxmak2.cmd +++ /dev/null @@ -1,20 +0,0 @@ -@rem COPY ROM TO EMULATOR -@rem -@echo -------------------------------------------------------[Copy to emul start] -@mkdir SPRINTER -@copy Build\_SPRIN.BIN SPRINTER\SP_304.BIN -@if errorlevel 1 goto error -@"C:\Program Files\7-Zip\7z.exe" a "Shared_Includes\Hide\Emulators\ZXMAK2\ROMS.PAK" SPRINTER\SP_304.BIN -@if errorlevel 1 goto error -@del SPRINTER\SP_304.BIN -@rmdir SPRINTER - -@goto quit - -:error -@echo ERROR during copying to emulator -@pause 0 -@exit 3 - -:quit -@echo -------------------------------------------------------[Copy to emul done] \ No newline at end of file diff --git a/make_and_start_emul_.cmd b/make_and_start_emul_.cmd deleted file mode 100644 index f9ec659..0000000 --- a/make_and_start_emul_.cmd +++ /dev/null @@ -1,4 +0,0 @@ -@echo off -call __make_all_vs.cmd -call copy_to_zxmak2.cmd -call start_emul.cmd diff --git a/src/ZX_ROMS/SP_128.BIN b/src/ZX_ROMS/SP_128.BIN deleted file mode 100644 index df80f80db1a303fcfe17c5f798d1d039ebbf8529..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 diff --git a/src/ZX_ROMS/SP_EXP.BIN b/src/ZX_ROMS/SP_EXP.BIN deleted file mode 100644 index 6b2a504059dc4cab73ad099b130b86632f4af9e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 B4lw`# diff --git a/src/ZX_ROMS/SP_TRD.BIN b/src/ZX_ROMS/SP_TRD.BIN deleted file mode 100644 index 9ac3b0c77b6120afad51c58a46bdf8beed75d993..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 diff --git a/src/ZX_ROMS/SP__48.BIN b/src/ZX_ROMS/SP__48.BIN deleted file mode 100644 index 6a0b37341f8b782c0c21f89764b9547ee22ecf83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmcJ0dq5Lc_V7&J0rKKGfQ1QzIwqn4F-#GHytOK!fYR!y)vj7w3yQRWXiB@gwss%2 z-QDi?+x@NDc1xe4efYEcu*4XaaU2m9Bz7r8nou_zF)C=a4BxrIcKgTo?>B*&x%ZxX z?z!ild+s^s-nrRfn3{6&2Gd$LZ9PjAyKclyp$pOuVGnjrXvB!ykan$E5YBg-Hn2X| zpX0}Ure>B(Yi4(UMoK5M7rXm}I;Pj@4c+6sb(7Cv!Pb1%<&F>6nVJIVBM1_|>J0@; z0XLNf_&L#dPSkXZ`T>zB7@)*>2B&hMfcv7V;?&ZLWu=e4UCEW5t+X$#xL93WRa#o{ zc41A;`NE4eg(p`PE`Ph&UgBO=cxHL&+3KZdi|rR`3eOf+pDirDP*`(z`PtG(&Y^k_ zpRX=ITUd0Vvb2<6dUj>?`Rbagw~Loly{TlYFRrk!a+g*WR=e$$r4{5`#mnv0rQ};HN~_AkN`*4}`Eom1(*w8a zl_!^0R01A*;VFbrXmNE-UOCHfKw?CLw zTfLgpR9Z40E*v>E{Pm}Q|Ht1tjvVc5f9J$UAOF?&my_O4K6f5>{OdCNzpZ-)zBv5; z2ZLV?J@;Av?!L8O9`mfZ6s1(ijPdWv>lW#5F|oUK zb*)Hn!mlNrMvUbhq>@@_CMDLXJw_S(5AvFjB0UEMC+K+r$T&gI1`t_*cXY3BqO5W% zSIst2lNHLzRk%-BAoVt7sn|&#zs8}$g`K$(Q0yT7T@;VCinGs&1S#d4JB@Nlq9ccE z6?2*Sn!9!>E$y;%#sDs(rBD=)B|13c90|XezQwPmBPMyvx=vYV7s++~g%d3Un!Eoa zB@>M`68;JLg2-5u{iLkBOU3nD;URKHi$r{o{;O!AkNK5dZL;obI!@NjKLPpV+x>bm zjaG3EBG~}eVKz_1cdQE>p zEV1)jNcFByXm!hqeq6V+te~ajS)I){7RIq6on$Y~+}{Bae?e87og7 zq!gL9=e`tE&+W=PDasU!^ddL@J>vm4D!Ru=dZI#HtSauNO?N>=v_Y<)oRHYR=oCif zmb=C{nO-!5F8o#)ky`?aKcUChwyxur;dC;j;1Ez>vv|>R3*OGPT$9>oVTvO}s)|%v zbc4@egpN0S)Y+11k0F$U4(y}OK`L3L_;?-;c+T1Q<9wXr$obQ9=+drF$kV$;9AP|X zi_a$~+hyI;^uOmP>6VlZVg>oC&{^6`fR`}%%!7`K1!wnc@wbK%9+U>qU zuOiY$M#t#C8?@q6z%mXH9BzZ49D_}f=oUo{?$FwBeg}=`4K`tcQE?7=c~rQT9B{2x zitm%D|3!8!dC(e(4O*j;jo9MBXEcM2T4IIRLE8TdvVy?PFU9t(cT35l_=<02s7t+lT~&4T%16B?JqQnCVeA zxTc!T304h06FJxzWm?9fSKVNvJ`g5iyV?i598?eb3w*4-W4d~a}F|XIuri(sHT6zl?bNK{@l z7!IhDm=psHlO&x;Hd|D_fN(s~OZ-Qet0t~E>|$HD55~zMw$U>`r&Vq!bOwm){$cST z8Qt6Gqk!3@BEfRoOGv%Mux+Y0ke7q%o+9-spc-L=4hMi(m8uUCkY}o9N8Bn#X+|9; zr0DMK4OUl!bgXCHeK0G$&OWHr%lT}RF!mjWLuwf3NnUbIxEMDr9KuN%%(Sd$^^?nG?I-Qwr`qCHa@Ybj@;g`Y3ELILtP8`)TWlhn#zXyEe#u<&ONB9 zc;@Min;OUs4GkMwAX)sxhK3D~H~uK6sHJh!&fJ57G*Tqbdm=;yvsEN4n~aeW>tXd; zm*{gzBP(k4b84!qaw_fX*R5sOtgfk!vZZ}a8eny-Ak{Lh#6}z^rE;y&<EtJy~=V3>ZG968ikcna)5xQTJrP#dSbP$fY@euF(OOH5|M_dBM2!f@xTO}_B1~Ggc8?f;*^oxgDS612`YIFEC9#KFjbIkkRBPXn1tX-Rj~LaHtlCD7c7364Hmz^rtJk{ zca)~JP18)q2A93WntldGfTXNDxa?)tga9f^O#mRaG5O+t%dB#NiG;=sudzfqESQ2V zk|z%Mb#`>WepD-KqBP_^&UIiB))nUtE^CFJ3i>GEDI~0Hz_^Iz_lhJb;k#yG^>gOT zQ9A=I`8Fe|m52LCEBXXM+uQPa-1_HS22~!;Ih=z19qFL9d(D6gIRGlC!k6? zc=)|&6%!Ln<&!r8Gf~-@FC)E94aKQ!))d2mI2BN45mlyuvy@c=LlvzV=yK z<^LyNOG>UWklGBXJA6H)luev(7B)i248Oz1g~BLCZ6g6^*_lOAN&e@6rAaX_TE=_D zCA3t0VPKai9k7voo=cuyZak33J1F{IK6xh)63Kz2{=%>nbQ(OGzUJ^?Ni;B6OmZhA zHq-Hw>oOjoSKBa{2Eo<>#PD~x9@*r=Dzel@?9cioYkGx6eILI+Q|?6FpDBocU-5@M zFk?I-NtcRO=)wt7tfLo&^(m4+Z`v!YAZjMdGG$t$Tlk~)2Ob!PS0_~{$UyXt7)pQF z$+hi#yrF*Ewl8|3L3!1&;4ky=+GGR zSpG2I1;~L!p+sx!T%G$XR!%6jq`3)%M}K?Lnkfl)93}=#igu(q4e#m;m@fPl;;s`AJuvFaAI=$(;{Yo-oPZwEV zaKL}(XIu26gytr6S^*jz%JtvcWEbw;LtJ>KtfRb%(tihB`*m1tHH*>%e#wPC1bmmV3J{+|yszkXJcVKI=0+r}qVS=CdG# zR`sDQQ^*&^<8zV4vcy$(juLmg@@xhvo$9v6_3w6RuVlrC?>n#OW+8Wj?#Kptx z%&8+)#-*&FOC+A2v|@VV0U=XQ$Q|H}BPb41IF7l#Nd$`F&+GN32deb81&KVItMWCs~{7a1)^wwFCVcVG?-UJa2Nx1%t*wC~`F{%r%o8*aZ_QhePv}m;4$251U>Fy@1Aliy=Jz zrWaTrVnsmMLj(jb0p%kBfY1E}`x-NgRJ2aMUTH}IB`Mre_Yzls)H~GK;F_0NLed-N zD;NeIjW_KD=;$nrgYb&EJ-Fu4@L+cb*KA-1OpmjiL)795?94Zb4ocLJA?~IPaD2>q zg3CSy8-rm@t*ocqrUWmfAXpA=6I>ggvP#T-r>WV= zgiPaC`940;yVf^LCfJqvRXX+Pm9O^1PryRY;KWjOD53Br;1@R}ja)d>m7NEpfJ zu=Fej@fO+*h^@pRyh8vt=k*PriS{uQ9HoZZziAK^mKj0xAzlJzG>67`zB#yeLcBx>u5OQQ}F}payvwl zO6z`t>Tce;%?IJ9N^)o8hQ>`#Z>qbswC>pr+qV7$%*id!Os5++Z2@Bv5d{?*Hq>qL zRn*t*+ysB*);hANuzIPh2!dJ5$P5z2uE>T>+c#}!ym_A>6yo|GC$t8=+3++VARFrI zpN3vFklVJ_O_Kn~!tpJLy!}8cifw&gd+B^T`IAl0ZhhSMea_?c+v=aWG2Qsqy2g62 zk&#gxtSVfA`czj>ZmF;T8Z7B>*BZ%f^*ev)-_FK{O&fw`|7A-_X;&p!&QEVbrt_wT zhWZ;dV0=TJ4L{jhw`DqK?!o8C%mQ?cB7X;qfQP<&9t4^f-pO zVq${DOIZkZ28=7?d@!-Wm-0Qf6%-<=nD!x@E%`@i8aYc+Gjd(}U|I0OJaW2YkRC7x zkAngYIJcX3n0J~RLasNXZ>itaFT15a6<7Vd?o?bAdaG>fiN-Mn7K!2TQ($_e-|9$Y zCx0dQ;|A!vJxY%c76ytUR4JC9hTqpws{+E@c&~?hu`9lQ77J+z7f5;%l0o|=racUE z#PSYWG%Ac4@xs62&&6Zw60a^(R7Y1PBm7Q4tk-V>y&=dhSs_gfa2OUayb_OGxZA6! zbsVU^uuDZbgT)(IXMo~hf?GAPD%{sEz$Q>J00vsd2R3=y6Rej*>eJ;*q#W(tpHt)= z(Bmly0-gY4Vz}~FAdykx7vt2ha0Yfz+c_U}SdBUwFvcf9Pb(Cd`sy-ywX_oVawxQ= zhmcM}msDxgvk-1W^~~HD&Hzq`d&CFsS9b)&Wwc7HhACc2_6TbekXM7kRLw_Gh{T=b zAF>;Fp$04=)Pxf;Q&ky(rQn1jML|eX^pODCSL@}7{lT4J7h5HIuo%O<4%>>;e71Cf zNCekxV-Y8rG>Ez<8agF`VATk`Im6DZn$ZS;dFEjCHkJscZDUQ_&?-#h0bv0FSl;1m zQbJ;rKnoZ|drsl;L&A2Fi5(Ib0rhi91&VYKDil4D3SZq1lr;MbwroucFXt&Zm=%`* z(Pnxg_bC>1DtYaLZeO1fn$acpg3laW27qme@itm+z%V{$a%YA^T~x$VnuIdpS|t ziG-7)9GnMP?EK&P$!T+YRi71uCD%LI7&g&892il6tTVTe<(0IotC)yKZT;D{j9*1Z z@?Yga>+5KVt+)@`>g7O2eE|x%1tyCZ(bEZH%C)xNAv7K8Jm$M#Q9d1Vjl~Jc85WCZ zWadH_UKe>fUCbr52%dz6!m^5v1)C#{j2O>-lD#I&dXfzRT>m8ywraL!trK_yyf~g1 zAZ|I1cTx`X=N$9}7A`Fo*FE|-Qr6BrK$@vCO5GctRxqoC!9;iS{Bnr+Nnut7yor4fkU&$( z3@wbJX|stH7G(%;W-v12^#S$emuJAh?Um%6ViSGncBL1f- zxN9fiwg*;0Z!dS0|N9rGIzIi)tFQg;57XCk&(GUdw|&WPR}~bR6H;@UN_3B!i!&b1 zeY!}qlr4!{i|0!e*p?IpFTXwm+=~?K+6;_JmE|kWDCE)yWY`A}$c0q-K2k23EB`nd z`(K0fP>TH91QphnBDJSr>rxm5Xh zLL^)&?2c3|Cn;t4QenGN6xeUm*h zL4+rr*iIIggHmj!bv;u~n6urcm8`Avoz4ysKa0W01glF~3hDGjDs3ejfKjbY!H`iA zH`$;$O((|+zeuE2J@HVr)9Dn}E`p7QT*!C5JVW=uGWC|o)?e@V^!Xl`?O!<0K;RYn zfb^rAgYfO7H3ze(K(^14L=S%E^*O+sXGu*5QXLQr-oYMg3IvNA*t8Wa=M+{UeZfJX zejMWUA=qAd-@lkl=Xaf)G9hH+EfWXw$k-6^9#S%(Y}BIwhcI^bMBabvCT>B71L?a{ zD>UKQbd2zw5%9uPPx}>esvXM1{`Zkf4Z-Rd1PGS5aX;&rxYGn-jblT?6(e!LC0D>e z$zW#w39)SKAj9>j5clYaF$oh8u4Z5UB-u45SriZz;fOGyfL6v1F|edSE4oez1MLo&o?s0+h~ZJIsLcV_&XgW( z%sYI=ib-&34klyTIVOi26;i{Y_c=o-WLXO#(7CiaBpBpfV>lcX-JP#W+$O+&e0jroSxU3nXY|pZs zsg9joWhGFA{jsg_*lzKUgmIO=20WO4+u=0R1!n=DS zge@tsa0{g=ko7(Ck6Cwc&9ZR38GJ-=7{JglWMPTD!77W&^eIyK(4)8j_%OXrkZMg@G9ZaR{fkcb90R zBNvSX5E?gdx6jw30BW9vC7X_FK9on|;OFCY^fkC2=E9pS12z$Me!>zex1Du8m;yx; z!ms99;zz}F62f@+u~CsG^I*4wCL#a)%QIl-Bb}54Mgt&iNX{s$7G?-Y$}sGR#Egph zq;~X&nROWVFGgD_u#I7v>FvHcy{5xEtmiNrgrQV4ZbL#TNo#}(lD;Q=mx`V@#W~%A zD;4$-xFPXFQX{m?fTWuSIT(Kc14Ugyn{bM&Im^Uyf7W1iU?KiPd!lJL;_f~ z$o~hg0irt}n?M->!tfxTc9JMi08m2^1dYnw!3vMUE|;bobSP-L9ux)&TSwwDnDjS{ z185#kz}VaXg)e#r#G!(L@zGE}Hx45aLPIeQV^JHrwCfVrZ#aw55A;jmzDmS*DR5Gz zggt!wE>U8MZvov)FuN2=Mh=Uqf`MG{gnMF)udt$uiFDA)BlG>~G~R4)5w@k-lz%+{ z52eyyS#DGP^}ykShnuKo?!YdcqK%a56pNv{3KX=&@{bn40HDBb9Wj99LS=dHf(UI) zN2eihz}Y(XU;Z||ygfB1wLSG+|DAWYv_Sd0{(ru!RMxlnl^n>h@P1mk%%Rjz`f(SX zfiiq);Fko8_psq2o2b)ImOCaZYWYGEKgd5!O5UB{=OT%kULM9w`HVw+-Xe$fgE%zy7GwSCm>cx(o^KF7nzR61}!_Tru6Tdala``&9qoBg@l3J zPKi^JY4YM;lWtgU8pfw-P@;CAG~Bqvi_4u79B4QhzF+YTOW%}brn)6$r{tu>>5~m# zk?Fj+Q!*^O;*&{FngE%ENfMuTUTy;7aV8fyL}!e3>fqH8es$}HeT-91=Mk}E-pmo% zm9J$|r{rtdl@Xclq=a$98tK(#eqT|FmLh!k`^vEU|G()@eHRe<18(ULsKcc&E@PQ= zb{2-qeYo7jphZC8|E^1Bk=VW)N5nvOX6h+PCUCJCYhUBF&6)-A^^imiPe z>j~x2?k5WS;<3k?Q-97#|IR3XYxg+agv{ROahmq9%|9z|$@@8@p*8t-5C>0-9(FD0 zn>`U=$hqyt*JpxH)^h%5vlLi``YIfEl8PGGI|jS^CM3i(4ryrxXvt~a0`t^?S~po) z1BNFef%Ol+yS~LwTw7eLc+B1BOFB%;^2nroyFwXDB^`c`)ah?KolaZZe$X(tqlpNw zK?O^dQ-5KJ3uZNR1aQ~^2?(+D+9O*WAh~HXX#2by=ID1<{iU}3XYagn%K!csAN=#Z zv)HI>Dt(CZp|wdjlT3yiD0a}bhTGmg2NfLyWZ!`hVH$lSvKRR|$9Tu7k4>)V*~rYg zuN||u9kXV3!sTMQn**Gk1hiS6E0}OTi zx=f6vV`05j=)3-97l$ko{-}73k?^0p!|a9ehMifkaTA0p(o}9!ewx7Cz<^dUNGkYeNlD5ZeTYlyR)0bH*dm5dw@%()qr)RH!MDQB-!UiQ z>}v^QkMkFFsq7Ftm+>J&#at2-!1w(&OoF*5!(}=(-@UFY|E%pyp72ku`!vV9|Jl`z zDO9QmiBulG6o_97N2iSkupP!p90_YQGAZ;h-k@2K^)Nm??%}}-K^qfD9Q;G&qy6c2 zs4zK*`NM79pyEHsTVdwiA(KgKA?MHZ+k5Zr9Nn> z2n|O3Vj4ETKcK02jPmtC+o5phNwXIXAb6+$9l#H0sHE{B;xwaPs6(89#2i}Elh}(q z7gHoV0)f}QQ6#cn$nZjH6ljKajLcow3BV_Yru*#kr`kt-B2CkLNKB^<{8c1MI&_QY zkB$-(qX2v?HwsR&AYPq(cupZ=nX1J<%um^g9CQr8{~Vq1IhmI5;*Ekij0NrgC&j?- z;@t`I1bu6w4UPgNA$)P(u*2>o&hmG9hoDI{{|%w(?d|mqp<-b39WSrvw{t+gL!5JZ zjCM>sR*qP6pE3Nq&7afJXjP`5&tVAEcMrdnjG}^Tzya@E5C9?X?d{0pI?Cak$1*TS zw0U7yJ^+(w$hFi2mCN9qOoW{NCICc`8v+3$-8bZgC4}T#=qi2(sQ_CsZrEHBt{CiOlr_cpFq2teSjvWXxa3j zNJhPI`~ww(BVZbV7pIykS{4wFnh<~zhVe@@Pk<$N5Vw&b2Yw-v!OFglakl}-fW9+y zLP!uyuuN`ziiiQS05mFGI`r69pxz%ENi?HKA!s>9Nwwc4O(iRO5pF=; z-GN@*!g~vxAXrV|lO+(wqkwZ325l3If#zpvg+YNO5~BbTT-Jb^Eh8<> zN4tHu``k5aDJvN~j^c%0=y{RaA}Luh5&-W)0^6g#UU=&c$85}Ivja9jyUb261dU;b z&Nc-2-Wi9A0kzu=`tjP&c7z#$o*-SNUd@9)r=xB+RbOw)yW7}|afP;Wq!GKs; za86t^AZ~z1D<_^J6Cr#!+Mfv;FFg>$_x-=Max{~3~?T~Ok?0tk3&l#Xk=gve;Zl= zYk>$Ubr#8d*g=BRA(0Em-ey94fkiVu<{ZXkvIP>kmkH6T@v%%eJV_t{;b3+<-g|XD z<=FRLEvLnNRt)&m`rfNe)UJK+!AVuv`5a?l6_$^^shiC}4PRfNOn5G%V?W_=3oibAzljz zf1U5)@9y#Rx0Ul0AMJr%_GpjseOTiiugq>TYsfqL(GKG~tluY z2RJ4Q4>UrMI3{ToeldUjF1XdYJx+bdc!+J8tk|J$0^G!faY#Z6LOq2cv*Rq*1bi1G z3M?vp$coFL?aA#sU3*mnJZ1>j~;&B(;>m|5*-#^O5m->sToPDHhU&E%jo5Ej+n zYH9D5+2&ocS@ib`34djr0v8^dZ!5j@P)qxbpUw}K*ligQi8o(TV6Nn(zWQ0%+L}3Y z66ZXcxO`79=dfb!-4ytVqPg1*nnYb_&oMjZ16}$%El$oi4k4l@s-?n>mWV*@x;}{g ztb-BrIz8wuEy`3+_UVr@J++<=*UC({LceLP@UEXw#RcBfssPEH@|21f|d_>nF!e0!tKJZGkQ5hafi@p89-zQ;3dGU_5rcY z?ZJ&6AN(tfguxcZGIk(PUaUR6r|oL%d|Yv zo=1j-Y?p^*n>@`POPr(K)<)wUo;QVi^Oa4^Jm@7cM?rdc0Et$Hg+6>+NMF+bo4Ax< ziGnd9m7e%EPc}{XC=d89%?W&bY7^*#25P6b7o?8skpuYwL_c#25g+aaBHshb*t6k@ z4#g0mPv8w6-oWcUb3DN(J&ZnB<$*toF5IVfLIn#e%E*!3J)b#Fd)Ghgd9*Ub6Yz&R z_NpsC6ZXx($yHb}8%aDYzDlA!8(Z5u=3{13YHK@eCas{Erpz{iSYVmkH^1vuByMIi z%*qSzOZ&#`>RtI^m5(5|R?doPC_ z!4@CEa0?b%s=NFqyhglY&C5QtKxa8^>BxMTNnV(~aM6!`v6hS`m`qjcl>t{Ld=UmQNz!WoAa$<5$Sv#x`F|TDmnf+n*U$Q^RPPK9i@r9iW4qEqG zyB6%SDi(g5{YUFhb7HgJTwu@meb&AH5qsisueB_b>;4}Nc|X06(ztT$ZBniUS>8aFK%=>s*hnT5mIfP--Lfj5i- zl3>N$w-ymr4h*5-5pLsC@C1<_aYGDQskBEq`~{?ha&%Qj+vKlOG3fY~a|A@FyhGj{ z9Yfr0?;h`isV{Ud=ndr)H|$E~^JsIE>w`ElI^f^Azzaw{KBGI!Bivp9a7g}qf$3t9 zy#)a;r;sOAz=1j{Mt?iNl?&?@WI{Ch;K@vgF*w1+?^+;iT%d!MW#Kiil;IRp5M77a zs=#19i=>+UZO35#G?_V2AJ1iYn~%<)o}vh*53ELtk2fEI&Y*H z%^5z}oCujA083Iy;0-Y9{{2j%7-xyg%YX637sYoia1^7Jeco=tWneD!sD18o2Xzen znw{QG*b|0kY||tW@(${-S?RN3O;i(=(3A@ICNJp1tJ#5p9AY&5a;}~DYWk%wxg$C` zx|eH)Pg811JYQ!~jr)YW?A|~K(n{U9ptBGQ;1M$SxsgS;`?HZ|GV-XCmW2w4_z)3u zl-4A@&Zx;?WDGT8CWf4$_OLNA{x5uCX#C>0*&*FUd?D)JGy-3r8@2*&gA)KVblN7o z{{(B!aBs>72a8eoL`z29cf0{K!1Y9+SY>n9$bm2|(%W9-wt*cPFk8`HJ?wCSkEkJ) z-f3?Q%)n`PTD?T+-o{3AzVuQ~qq+ebpVjypXg$Z#Q*jC8L>-6Lm|uUlln zk|u6U0-Ho*`Cu%`m>%^(u!*c~C=!*;U{X9Y`}*=TX9Ul*&OGqx=s}VF?%&D9r>(*E zKRMQ2ucO+219l@K|61C&KdqBxf{h3C!_NdUn4C^b1{NZ;1iLuN0QMl{4r7Ys1=6tx zGpB=Ldt?1aSrD^iv}1>oA)aP^ z3(klj6bJG9IDV=BI7Ykj>t8+c;NRE$Ve-$I^_hcTe)H+$MW_6qsjVljT6ZR|{m;Nx zkDs`{;m{{hVS1q=#Np^eI(d2~qCf2|DWWgaf~CC4jN$N9&Xh5(Q&tJQst@8hnBovF zmmFfaL5P^+n`x;~lq-B88T4}6$@r<1FN$o+U`y~Zn-=cP6W8mxBJ^4u+&cXdZ07d( z#d_lEo(a637=h1jz!(rdVVwHgoLe}+IN@^^iGKY1cM`n|&oK&|kfVp}dzi%??s4HG zM)8)=$&i^sJ3~mOrW9tt1V~^jT^7nAz+^6fXgEO4Liz2Cf`VtrsXxVqoRHm-_0pQW z9PkRBV{%_w<8LEtp)R!lHKf|f$UG>vEzjDwhA7J2wZC?ILVoV6s5li5i4b@|2tapzyrB2ukovBMXUe0 zuITlxU8~o3aB$o?kJC-vNNLM$X8o{DARK(KbNXAnD2KQPJog`ekatx$oZHzN{vyvb z{Y4&Fw*UPiF9Lm$#}_nF!lm4ut?)4(idLbo@gkg#{Y zaDEXjHC$d~la0F)qH>_9q7yzgsIDw6uBlonR4y;{xbVFHvgQBv1|Rkwe9)!O`{D0L zdzS;@^Q00`=p9*ktS$ah2mDf0#g)zZd;s0FNn!tmIq;>2xoeABL%Hv@OD>!Z!XyrJq%X zVR~9`D#?X>fJK)~1(yuNNQ8idj98UT6$?)lJki&f;ny&*Z90Wv1OaannF_(@l|59o z5k`ri0S`dr6-n|IJJ2&qQUv)bf?nbPJdVY?!|A-myNgi11Jwt#c}02QG~8{H@MuFO zY7RY60|18T!!R5C;DQvQJ+DZn!T@jHL#x&;hI&xnQB;IsyNdw-Zj@fU7`4+}QdCsZ z9BzLxq6_F)ym)cAyaJVnt3f^JY?ywDL=vW_WXbj=C6Eum;d(`zR~I4tMH{OgDuXAq z7luQvEe_)=s(J|Up){(Ow>VFN@QaAAKraHHZm*~)9r%Zmt6_W~L8Jrx3ng?I&Vkqp zbZQYjTIla$_-qUMza6334&7&J!f;Rm*AzA*4bC_LJjTfKN}xTG%u7pyCpLp5$r->t z$VT}XQ__t16s0Go>!WNL1O00*DJenhw&?W?z(Wlg5J=J%3k~!EuwEYp^`EGL3!VrZ z-~nGr3BaRtbC>}LpJKXQ5|uAzWWaYlbH6^ShTuy|Xd3u|l>j;#J!w6S@If)62ipz( h-;Mfj3HKkd0m> %LOG% -%BIN%\sjasmplus.exe -Wall --msg=war --nologo --syntax=w --fullpath --lst=EXP.LST --raw=EXP.BIN EXP.ASM >> %LOG% 2>&1 -if errorlevel 1 goto error - -goto quit - -:error -echo ERROR during compile EXPANSION -pause 0 -exit 3 - -:quit diff --git a/src/bios/loader/clean.cmd b/src/bios/loader/clean.cmd deleted file mode 100644 index ca561e9..0000000 --- a/src/bios/loader/clean.cmd +++ /dev/null @@ -1,4 +0,0 @@ -@echo off -del *.bin /s -del *.lst /s -del *.log /s diff --git a/src/bios/loader/make.cmd b/src/bios/loader/make.cmd deleted file mode 100644 index 4a9e87d..0000000 --- a/src/bios/loader/make.cmd +++ /dev/null @@ -1,23 +0,0 @@ -@echo off -set BIN=..\..\bin -set LOG=compile.log -for /F %%i in ('date /t') do set mydate=%%i -for /F %%i in ('time /t') do set mytime=%%i -set mydt=%mydate% %mytime% - -rem Altera K30 | Altera K50 -set ALT_LOADER=loader.ASM - -echo 7. [1/1] ALTERA LOADER -echo %mydt%: [1/1] ALTERA LOADER >> %LOG% -%BIN%\sjasmplus.exe -Wall --msg=war --nologo --syntax=w --fullpath --lst=LOADER.LST --raw=LOADER.BIN %ALT_LOADER% >> %LOG% 2>&1 -if errorlevel 1 goto error - -goto quit - -:error -echo ERROR during compile ALTERA LOADER -pause 0 -exit 3 - -:quit diff --git a/src/bios/loader/make_vs.cmd b/src/bios/loader/make_vs.cmd deleted file mode 100644 index e7fce22..0000000 --- a/src/bios/loader/make_vs.cmd +++ /dev/null @@ -1,27 +0,0 @@ -@echo -------------------------------------------------------[LOADER START] -@set BIN=..\..\bin -@set BUILD=..\..\..\Build -@set SJASM_PARAM=-DVS_CODE_COMPILE -Wall --msg=war --nologo --syntax=w --fullpath -for /F %%i in ('chdir') do set fulldir=%%i - -@rem Altera K30 | Altera K50 -@set ALT_LOADER=loader.ASM - -@echo 7. [1/1] ALTERA LOADER -@sjasmplus.exe %SJASM_PARAM% --lst=%BUILD%\LOADER.LST --raw=%BUILD%\LOADER.BIN %fulldir%\%ALT_LOADER% -@if errorlevel 1 goto error%no_stop% -@echo [OK ] -@goto quit - -:error0 -@echo -------------------------------------------------------[ERROR during compile ALTERA LOADER] -@pause 0 -@exit 3 - -:error1 -@echo -------------------------------------------------------[ERROR during compile ALTERA LOADER] -@set error_level="1" - -:quit -@echo -------------------------------------------------------[LOADER DONE] -@echo. diff --git a/src/bios/exp/ZX_MENU.ASM b/src/bios/rom/ZX/ZX_MENU.ASM similarity index 100% rename from src/bios/exp/ZX_MENU.ASM rename to src/bios/rom/ZX/ZX_MENU.ASM diff --git a/src/bios/rom/clean.cmd b/src/bios/rom/clean.cmd deleted file mode 100644 index 3add054..0000000 --- a/src/bios/rom/clean.cmd +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -del *.bin /s -del *.lst /s -del *.hr /s -del *.log /s diff --git a/src/bios/rom/make.cmd b/src/bios/rom/make.cmd deleted file mode 100644 index 4c10a32..0000000 --- a/src/bios/rom/make.cmd +++ /dev/null @@ -1,46 +0,0 @@ -@echo off -set BIN=..\..\bin -set LOG=compile.log -for /F %%i in ('date /t') do set mydate=%%i -for /F %%i in ('time /t') do set mytime=%%i -set mydt=%mydate% %mytime% - -echo 1. [1/3] DEPACK -echo %mydt%: [1/4] DEPACK >> %LOG% -%BIN%\sjasmplus.exe -Wall --msg=war --nologo --syntax=w --fullpath --lst=DEPACK\DEPACK.LST --raw=DEPACK\DEPACK.BIN DEPACK\DEPACK.ASM >> %LOG% 2>&1 -if errorlevel 1 goto error - -echo 2. [2/3] SETUP -echo - MAIN.ASM -echo %mydt%: [2/4] SETUP >> %LOG% -echo %mydt%: - MAIN.ASM >> %LOG% -%BIN%\sjasmplus.exe -Wall --msg=war --nologo --syntax=w --fullpath --lst=SETUP\MAIN.LST --raw=SETUP\MAIN.BIN SETUP\MAIN.ASM >> %LOG% 2>&1 -if errorlevel 1 goto error - -echo - MAIN.HR -echo %mydt%: - MAIN.HR >> %LOG% -%BIN%\hrust.exe SETUP\MAIN.HR SETUP\MAIN.BIN >> %LOG% - -echo - SETUP.ASM -echo %mydt%: - SETUP.ASM >> %LOG% -%BIN%\sjasmplus.exe -Wall --msg=war --nologo --syntax=w --fullpath --lst=SETUP\SETUP.LST --raw=SETUP\SETUP.BIN SETUP\SETUP.ASM >> %LOG% 2>&1 -if errorlevel 1 goto error - -rem echo 3. [3/4] EXTENDED -rem echo %mydt%: [3/4] EXTENDED >> %LOG% -rem %BIN%\sjasmplus.exe -Wall --msg=war --nologo --syntax=w --fullpath --lst=EXTENDED\EXTENDED.LST --raw=EXTENDED\EXTENDED.BIN EXTENDED\EXTENDED.ASM >> %LOG% 2>&1 -rem if errorlevel 1 goto error - -echo 4. [3/3] ROM -echo %mydt%: [4/4] ROM >> %LOG% -%BIN%\sjasmplus.exe -Wall --msg=war --nologo --syntax=w --fullpath --lst=ROM.LST --raw=ROM.BIN ROM.ASM >> %LOG% 2>&1 -if errorlevel 1 goto error - -goto quit - -:error -echo ERROR during compile ROM -pause 0 -exit 3 - -:quit diff --git a/start_emul.cmd b/start_emul.cmd deleted file mode 100644 index 5d3f569..0000000 --- a/start_emul.cmd +++ /dev/null @@ -1 +0,0 @@ -start Shared_Includes\Hide\Emulators\ZXMAK2\ZXMAK2.exe \ No newline at end of file From dc8f5f37ac7b9ee36c76eba29309c1359667262d Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Sun, 25 Jun 2023 04:55:29 +1000 Subject: [PATCH 009/267] some tests with 5x --- Shared_Includes | 2 +- src/altera/acex/k30/.vscode/settings.json | 3 + src/bios/BUILD.a80 | 44 +- src/bios/exp/DCP.ASM | 480 +++++++++++----------- src/bios/exp/EXP.asm | 75 ++-- src/bios/exp/EXTENDED/HDD_DRIVER_6.asm | 72 ++-- src/bios/exp/FUNC_4x.ASM | 6 +- src/bios/exp/FUNC_RAM_ROM_DRV.ASM | 9 +- src/bios/loader/loader.asm | 5 +- src/bios/rom/ROM.asm | 360 +++------------- src/bios/rom/SETUP/AUTOIDE.asm | 10 +- src/bios/rom/SETUP/MAIN.asm | 76 +--- src/bios/rom/SETUP/SETTINGS.asm | 341 +++++++-------- src/bios/rom/SETUP/VIDEO_IO.asm | 50 +-- src/bios/rom/SETUP/messages.z80 | 54 +-- src/bios/rom/ZX/ZX_FUNC.ASM | 245 +++++++++++ src/bios/rom/ZX/ZX_MENU.ASM | 397 ++++++++++++++++++ src/bios/rom/ZX_MODE.ASM | 395 ++++++++++++++++++ src/bios/shared/CompMacro.asm | 18 +- src/bios/shared/DEFINES.INC | 6 +- src/doc/changes.txt | 89 ++-- 21 files changed, 1683 insertions(+), 1054 deletions(-) create mode 100644 src/altera/acex/k30/.vscode/settings.json create mode 100644 src/bios/rom/ZX/ZX_FUNC.ASM create mode 100644 src/bios/rom/ZX_MODE.ASM diff --git a/Shared_Includes b/Shared_Includes index 95c15f4..81f727c 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 95c15f46dcd79b9ea7f60eca0011152305fbc366 +Subproject commit 81f727ca6ecd8fcaaac4f4e573fe1fd6578c1efa diff --git a/src/altera/acex/k30/.vscode/settings.json b/src/altera/acex/k30/.vscode/settings.json new file mode 100644 index 0000000..3975b47 --- /dev/null +++ b/src/altera/acex/k30/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "search.useIgnoreFiles": false +} \ No newline at end of file diff --git a/src/bios/BUILD.a80 b/src/bios/BUILD.a80 index ca12ebb..cb60f33 100644 --- a/src/bios/BUILD.a80 +++ b/src/bios/BUILD.a80 @@ -32,20 +32,9 @@ ENDM ;[--------------------------------------------------------------------------] - IF BIOS_ZXMODE DEFINE SP_128_BIN INCBIN 'src/ZX_ROMS/NEW/SP_128.BIN' DEFINE SP__48_BIN INCBIN 'src/ZX_ROMS/NEW/SP__48.BIN' DEFINE SP_TRDOS_BIN INCBIN 'src/ZX_ROMS/NEW/SP_TRDOS.BIN' - DEFINE SP_EXP_BIN ;INCBIN 'src/ZX_ROMS/SP_EXP.BIN' - ELSE - DEFINE SP_128_BIN INCBIN 'src/ZX_ROMS/SP_128.BIN' - DEFINE SP__48_BIN INCBIN 'src/ZX_ROMS/SP__48.BIN' - DEFINE SP_TRDOS_BIN INCBIN 'src/ZX_ROMS/SP_TRD.BIN' - DEFINE SP_EXP_BIN INCBIN 'src/ZX_ROMS/SP_EXP.BIN' - ENDIF - - - ;[--------------------------------------------------------------------------] MACRO ROM_BUILD bitstream @@ -73,25 +62,9 @@ SP_TRDOS_BIN Set_Block 'SP_TRD free space: ', #14000 ; -;PAGE 5 ZX Page - #45 - SP_EXP_BIN - Set_Block 'SP_EXP free space: ', #18000 - - IF SetFullZXromLoader -; -;PAGE 6 ZX Page - #46 - INCBIN 'src/ZX_ROMS/SP_EXP.BIN' - Set_Block 'SP_EXP (duble) free space: ', #1C000 -; -;PAGE 7 ZX Page - #47 - INCBIN 'src/ZX_ROMS/SP_EXP2.BIN' - Set_Block 'SP_EXP2 free space: ', #20000 - ELSE - INCBIN IMG_RECOVERY,0,#8000 - DISPLAY "ROM Disk recovery part1, pages 6..7: #20000..#28000" - ;Set_Block 'Empty space: ', #1C000 ; 6 - ;Set_Block 'Empty space: ', #20000 ; 7 - ENDIF +;PAGE 5 Recovery image part 1 + INCBIN IMG_RECOVERY,0,#C000 + DISPLAY "ROM Disk recovery part1, pages 5..7: #20000..#2C000" ; @@ -100,12 +73,11 @@ INCBIN 'Build/Bin/EXP.BIN' Set_Block 'EXP free space: ', #24000 ; -;PAGE 9-11 (#09, #0A, #0B) - INCBIN IMG_RECOVERY,#8000,#C000 - DISPLAY "ROM Disk recovery part2, pages 9..11: #24000..#30000" - ; Set_Block 'Empty space: ', #28000 - ; Set_Block 'Empty space: ', #2C000 - ; Set_Block 'Empty space: ', #30000 +;PAGE 9-11 (#09, #0A, #0B) Recovery image part 2 + INCBIN IMG_RECOVERY,#C000,#8000 + DISPLAY "ROM Disk recovery part2, pages 9..10: #24000..#2C000" + + Set_Block 'Empty space: ', #30000 ; ;PAGE 12-15 (#0C, #0D, #0E, #0F) INCBIN bitstream diff --git a/src/bios/exp/DCP.ASM b/src/bios/exp/DCP.ASM index 5ab4b24..e0c636b 100644 --- a/src/bios/exp/DCP.ASM +++ b/src/bios/exp/DCP.ASM @@ -25,426 +25,426 @@ ; ;-----------------------------------------------------------------------; - DW %00000000000111 - DW %00010001101111 + DW %00'000'0'0000'0111 + DW %00'010'0'0110'1111 DB ACEX.VG93_1F - DW %11010000000111 - DW %11010001101111 + DW %11'010'0'0000'0111 + DW %11'010'0'0110'1111 DB ACEX.VG93_1F - DW %00000000100111 - DW %00010001101111 + DW %00'000'0'0010'0111 + DW %00'010'0'0110'1111 DB ACEX.VG93_3F - DW %11010000100111 - DW %11010001101111 + DW %11'010'0'0010'0111 + DW %11'010'0'0110'1111 DB ACEX.VG93_3F - DW %00000001000111 - DW %00010001101111 + DW %00'000'0'0100'0111 + DW %00'010'0'0110'1111 DB ACEX.VG93_5F - DW %11010001000111 - DW %11010001101111 + DW %11'010'0'0100'0111 + DW %11'010'0'0110'1111 DB ACEX.VG93_5F - DW %00000001100111 - DW %00010001101111 + DW %00'000'0'0110'0111 + DW %00'010'0'0110'1111 DB ACEX.VG93_7F - DW %11010001100111 - DW %11010001101111 + DW %11'010'0'0110'0111 + DW %11'010'0'0110'1111 DB ACEX.VG93_7F - DW %00000001101111 - DW %00011001101111 + DW %00'000'0'0110'1111 + DW %00'011'0'0110'1111 DB ACEX.VG93_State - DW %11010001101111 - DW %11011001101111 + DW %11'010'0'0110'1111 + DW %11'011'0'0110'1111 DB ACEX.VG93_State ; For joystick - DW %00011000000111 - DW %10011001101111 + DW %00'011'0'0000'0111 + DW %10'011'0'0110'1111 DB ACEX.JOY_VG93 - DW %10011000000111 - DW %11011001101111 + DW %10'011'0'0000'0111 + DW %11'011'0'0110'1111 DB ACEX.JOY_VG93 ; For VG93 with dos on - DW %00001001101111 - DW %00011001101111 + DW %00'001'0'0110'1111 + DW %00'011'0'0110'1111 DB ACEX.JOY_VG93 ; For VG93 with dos off - DW %11011001101111 - DW %11011001101111 + DW %11'011'0'0110'1111 + DW %11'011'0'0110'1111 DB ACEX.JOY_VG93 - DW %00000000101101 - DW %11011111111111 + DW %00'000'0'0010'1101 + DW %11'011'1'1111'1111 DB ACEX.FDD720 - DW %11000000101101 - DW %11001111111111 + DW %11'000'0'0010'1101 + DW %11'001'1'1111'1111 DB ACEX.FDD720 - DW %00000000111101 - DW %11011111111111 + DW %00'000'0'0011'1101 + DW %11'011'1'1111'1111 DB ACEX.FDD144 - DW %11000000111101 - DW %11001111111111 + DW %11'000'0'0011'1101 + DW %11'001'1'1111'1111 DB ACEX.FDD144 ;!FIXIT UNKNOWN PORTS--------------------------------------------------; dos on, только через BC, чтение/запись - DW %10000100101101 - DW %11010111111111 + DW %10'000'1'0010'1101 + DW %11'010'1'1111'1111 DB #18 - DW %10000100111101 - DW %11010111111111 + DW %10'000'1'0011'1101 + DW %11'010'1'1111'1111 DB #19 - DW %10000110101101 - DW %11010111111111 + DW %10'000'1'1010'1101 + DW %11'010'1'1111'1111 DB #1A ;----------------------------------------------------------------------; - DW %00000100101101 - DW %11001111111111 + DW %00'000'1'0010'1101 + DW %11'001'1'1111'1111 DB ACEX.ISA_CTRL - DW %10000110111101 - DW %11010111111111 + DW %10'000'1'1011'1101 + DW %11'010'1'1111'1111 DB ACEX.ISA_CTRL - DW %11000100101101 - DW %11001111111111 + DW %11'000'1'0010'1101 + DW %11'001'1'1111'1111 DB ACEX.ISA_CTRL - DW %00001100111101 - DW %11001101111111 + DW %00'001'1'0011'1101 + DW %11'001'1'0111'1111 DB ACEX.CMOS_DATA.READ - DW %11001100111101 - DW %11001101111111 + DW %11'001'1'0011'1101 + DW %11'001'1'0111'1111 DB ACEX.CMOS_DATA.READ - DW %00000110101101 - DW %11001111111111 + DW %00'000'1'1010'1101 + DW %11'001'1'1111'1111 DB ACEX.CMOS_ADDR.WRITE - DW %11000110101101 - DW %11001111111111 + DW %11'000'1'1010'1101 + DW %11'001'1'1111'1111 DB ACEX.CMOS_ADDR.WRITE - DW %00000100111101 - DW %11001101111111 + DW %00'000'1'0011'1101 + DW %11'001'1'0111'1111 DB ACEX.CMOS_DATA.WRITE - DW %11000100111101 - DW %11001101111111 + DW %11'000'1'0011'1101 + DW %11'001'1'0111'1111 DB ACEX.CMOS_DATA.WRITE ; ;---------HDD[v] - DW %00000001000000 - DW %11000001101111 + DW %00'000'0'0100'0000 + DW %11'000'0'0110'1111 DB #20 - DW %01000001000000 - DW %11010001101111 + DW %01'000'0'0100'0000 + DW %11'010'0'0110'1111 DB #20 - DW %10000001000000 - DW %11010001101111 + DW %10'000'0'0100'0000 + DW %11'010'0'0110'1111 DB #20 - DW %11000001000000 - DW %11000001101111 + DW %11'000'0'0100'0000 + DW %11'000'0'0110'1111 DB #20 - DW %00000001000001 - DW %00010111101111 + DW %00'000'0'0100'0001 + DW %00'010'1'1110'1111 DB #21 - DW %00010001000001 - DW %11010111101111 + DW %00'010'0'0100'0001 + DW %11'010'1'1110'1111 DB #21 - DW %11010001000001 - DW %11010111101111 + DW %11'010'0'0100'0001 + DW %11'010'1'1110'1111 DB #21 - DW %00000001000010 - DW %00010111101111 + DW %00'000'0'0100'0010 + DW %00'010'1'1110'1111 DB #22 - DW %00010001000010 - DW %11010111101111 + DW %00'010'0'0100'0010 + DW %11'010'1'1110'1111 DB #22 - DW %11010001000010 - DW %11010111101111 + DW %11'010'0'0100'0010 + DW %11'010'1'1110'1111 DB #22 - DW %00000001000011 - DW %00010111101111 + DW %00'000'0'0100'0011 + DW %00'010'1'1110'1111 DB #23 - DW %00010001000011 - DW %11010111101111 + DW %00'010'0'0100'0011 + DW %11'010'1'1110'1111 DB #23 - DW %11010001000011 - DW %11010111101111 + DW %11'010'0'0100'0011 + DW %11'010'1'1110'1111 DB #23 - DW %00000001000100 - DW %00010111101111 + DW %00'000'0'0100'0100 + DW %00'010'1'1110'1111 DB #24 - DW %00010001000100 - DW %11010111101111 + DW %00'010'0'0100'0100 + DW %11'010'1'1110'1111 DB #24 - DW %11010001000100 - DW %11010111101111 + DW %11'010'0'0100'0100 + DW %11'010'1'1110'1111 DB #24 - DW %00000001000101 - DW %00010111101111 + DW %00'000'0'0100'0101 + DW %00'010'1'1110'1111 DB #25 - DW %00010001000101 - DW %11010111101111 + DW %00'010'0'0100'0101 + DW %11'010'1'1110'1111 DB #25 - DW %11010001000101 - DW %11010111101111 + DW %11'010'0'0100'0101 + DW %11'010'1'1110'1111 DB #25 - DW %00000011000010 - DW %00010111101111 + DW %00'000'0'1100'0010 + DW %00'010'1'1110'1111 DB #26 - DW %00010011000010 - DW %11010111101111 + DW %00'010'0'1100'0010 + DW %11'010'1'1110'1111 DB #26 - DW %11010011000010 - DW %11010111101111 + DW %11'010'0'1100'0010 + DW %11'010'1'1110'1111 DB #26 - DW %00000011000011 - DW %00010111101111 + DW %00'000'0'1100'0011 + DW %00'010'1'1110'1111 DB #27 - DW %00010011000011 - DW %11010111101111 + DW %00'010'0'1100'0011 + DW %11'010'1'1110'1111 DB #27 - DW %11010011000011 - DW %11010111101111 + DW %11'010'0'1100'0011 + DW %11'010'1'1110'1111 DB #27 ;---------HDD[^] ; - DW %00000011000100 - DW %00010111101111 + DW %00'000'0'1100'0100 + DW %00'010'1'1110'1111 DB ACEX.IDE_CONTROL_3F6 - DW %00010011000100 - DW %11010111101111 + DW %00'010'0'1100'0100 + DW %11'010'1'1110'1111 DB ACEX.IDE_CONTROL_3F6 - DW %11010011000100 - DW %11010111101111 + DW %11'010'0'1100'0100 + DW %11'010'1'1110'1111 DB ACEX.IDE_CONTROL_3F6 - DW %00000011000101 - DW %00010111101111 + DW %00'000'0'1100'0101 + DW %00'010'1'1110'1111 DB ACEX.IDE_STATUS_3F7 - DW %00010011000101 - DW %11010111101111 + DW %00'010'0'1100'0101 + DW %11'010'1'1110'1111 DB ACEX.IDE_STATUS_3F7 - DW %11010011000101 - DW %11010111101111 + DW %11'010'0'1100'0101 + DW %11'010'1'1110'1111 DB ACEX.IDE_STATUS_3F7 - DW %00000000101100 - DW %11001111111111 + DW %00'000'0'0010'1100 + DW %11'001'1'1111'1111 DB ACEX.IDE_CHANEL_1 - DW %11000000101100 - DW %11001111111111 + DW %11'000'0'0010'1100 + DW %11'001'1'1111'1111 DB ACEX.IDE_CHANEL_1 - DW %00000000111100 - DW %11001111111111 + DW %00'000'0'0011'1100 + DW %11'001'1'1111'1111 DB ACEX.IDE_CHANEL_2 - DW %11000000111100 - DW %11001111111111 + DW %11'000'0'0011'1100 + DW %11'001'1'1111'1111 DB ACEX.IDE_CHANEL_2 - DW %00000010101101 - DW %11001111111111 + DW %00'000'0'1010'1101 + DW %11'001'1'1111'1111 DB ACEX.VSYNC320 - DW %11000010101101 - DW %11001111111111 + DW %11'000'0'1010'1101 + DW %11'001'1'1111'1111 DB ACEX.VSYNC320 - DW %00000010111101 - DW %11001111111111 + DW %00'000'0'1011'1101 + DW %11'001'1'1111'1111 DB ACEX.VSYNC312 - DW %11000010111101 - DW %11001111111111 + DW %11'000'0'1011'1101 + DW %11'001'1'1111'1111 DB ACEX.VSYNC312 - DW %00000010101100 - DW %11001111111111 + DW %00'000'0'1010'1100 + DW %11'001'1'1111'1111 DB ACEX.RESET - DW %11000010101100 - DW %11001111111111 + DW %11'000'0'1010'1100 + DW %11'001'1'1111'1111 DB ACEX.RESET - DW %00000010111100 - DW %11001111111111 + DW %00'000'0'1011'1100 + DW %11'001'1'1111'1111 DB ACEX.UNKNOWN ;!FIXIT можно пока убрать - DW %11000010111100 - DW %11001111111111 + DW %11'000'0'1011'1100 + DW %11'001'1'1111'1111 DB ACEX.UNKNOWN ;!FIXIT можно пока убрать - DW %00010000101011 - DW %11010001101011 + DW %00'010'0'0010'1011 + DW %11'010'0'0110'1011 DB ACEX.ISA_Control ;!FIXIT можно пока убрать ??? - DW %00011001101110 - DW %10011001101111 + DW %00'011'0'0110'1110 + DW %10'011'0'0110'1111 DB ACEX.ZX_Keyboard - DW %10011001101110 - DW %11011001101111 + DW %10'011'0'0110'1110 + DW %11'011'0'0110'1111 DB ACEX.ZX_Keyboard - DW %00001111111101 - DW %00001111111111 + DW %00'001'1'1111'1101 + DW %00'001'1'1111'1111 DB ACEX.AY_FFFD_READ - DW %00001111011111 - DW %11001111111111 + DW %00'001'1'1101'1111 + DW %11'001'1'1111'1111 DB ACEX.Kempston_Mouse - DW %11001111011111 - DW %11001111111111 + DW %11'001'1'1101'1111 + DW %11'001'1'1111'1111 DB ACEX.Kempston_Mouse - DW %00011001100011 - DW %11011001101111 + DW %00'011'0'0110'0011 + DW %11'011'0'0110'1111 DB ACEX.CBL_OUT - DW %01010001100011 - DW %11010001101111 + DW %01'010'0'0110'0011 + DW %11'010'0'0110'1111 DB ACEX.CBL_OUT - DW %10010001100011 - DW %11010001101111 + DW %10'010'0'0110'0011 + DW %11'010'0'0110'1111 DB ACEX.CBL_OUT - DW %00010000000111 - DW %11011000001111 + DW %00'010'0'0000'0111 + DW %11'011'0'0000'1111 DB ACEX.CBL_OUT - DW %00011000001000 - DW %11011001101111 + DW %00'011'0'0000'1000 + DW %11'011'0'0110'1111 DB ACEX.CBL_OUT - DW %00010001101011 - DW %10010001101111 + DW %00'010'0'0110'1011 + DW %10'010'0'0110'1111 DB ACEX.CBL_OUT - DW %10010001101011 - DW %11010001101111 + DW %10'010'0'0110'1011 + DW %11'010'0'0110'1111 DB ACEX.CBL_OUT - DW %00000001000110 - DW %11001111111111 + DW %00'000'0'0100'0110 + DW %11'001'1'1111'1111 DB ACEX.CBL_SYS_PORT - DW %11000001000110 - DW %11001111111111 + DW %11'000'0'0100'0110 + DW %11'001'1'1111'1111 DB ACEX.CBL_SYS_PORT - DW %00000111111101 - DW %00001111111111 + DW %00'000'1'1111'1101 + DW %00'001'1'1111'1111 DB ACEX.AY_FFFD_WRITE - DW %00000101111101 - DW %00001111111111 + DW %00'000'1'0111'1101 + DW %00'001'1'1111'1111 DB ACEX.AY_BFFD - DW %00000001101101 - DW %10000111111111 + DW %00'000'0'0110'1101 + DW %10'000'1'1111'1111 DB ACEX.Scorp_1FFD - DW %11000001101101 - DW %11000111111111 + DW %11'000'0'0110'1101 + DW %11'000'1'1111'1111 DB ACEX.Scorp_1FFD - DW %00000011101101 - DW %00100111101111 + DW %00'000'0'1110'1101 + DW %00'100'1'1110'1111 DB ACEX.Pent_7FFD - DW %00100011101101 - DW %11110111101111 + DW %00'100'0'1110'1101 + DW %11'110'1'1110'1111 DB ACEX.Pent_7FFD - DW %11100011101101 - DW %11100111101111 + DW %11'100'0'1110'1101 + DW %11'100'1'1110'1111 DB ACEX.Pent_7FFD - DW %10000001101101 - DW %11100111101111 + DW %10'000'0'0110'1101 + DW %11'100'1'1110'1111 DB ACEX.Pent_7FFD - DW %00000001101110 - DW %00001001101111 + DW %00'000'0'0110'1110 + DW %00'001'0'0110'1111 DB ACEX.Border_FE - DW %00000001010110 - DW %11001111111111 + DW %00'000'0'0101'0110 + DW %11'001'1'1111'1111 DB ACEX.ALL_MODE - DW %11000001010110 - DW %11001111111111 + DW %11'000'0'0101'0110 + DW %11'001'1'1111'1111 DB ACEX.ALL_MODE - DW %00000000001001 - DW %00010001101111 + DW %00'000'0'0000'1001 + DW %00'010'0'0110'1111 DB ACEX.PORT_Y - DW %00010000001001 - DW %11010001101111 + DW %00'010'0'0000'1001 + DW %11'010'0'0110'1111 DB ACEX.PORT_Y - DW %11010000001001 - DW %11010001101111 + DW %11'010'0'0000'1001 + DW %11'010'0'0110'1111 DB ACEX.PORT_Y - DW %00000001001001 - DW %00010001101111 + DW %00'000'0'0100'1001 + DW %00'010'0'0110'1111 DB ACEX.RGMOD - DW %00010001001001 - DW %11010001101111 + DW %00'010'0'0100'1001 + DW %11'010'0'0110'1111 DB ACEX.RGMOD - DW %11010001001001 - DW %11010001101111 + DW %11'010'0'0100'1001 + DW %11'010'0'0110'1111 DB ACEX.RGMOD - DW %00000000100100 - DW %00000000101111 + DW %00'000'0'0010'0100 + DW %00'000'0'0010'1111 DB ACEX.CNF_PORT ;!FIXIT можно убрать - DW %00000001101100 - DW %11001001101111 + DW %00'000'0'0110'1100 + DW %11'001'0'0110'1111 DB ACEX.SCALE - DW %11000001101100 - DW %11001001101111 + DW %11'000'0'0110'1100 + DW %11'001'0'0110'1111 DB ACEX.SCALE - DW %00000000001010 - DW %00010001101111 + DW %00'000'0'0000'1010 + DW %00'010'0'0110'1111 DB ACEX.SLOT0 - DW %00010000001010 - DW %11010001101111 + DW %00'010'0'0000'1010 + DW %11'010'0'0110'1111 DB ACEX.SLOT0 - DW %11010000001010 - DW %11010001101111 + DW %11'010'0'0000'1010 + DW %11'010'0'0110'1111 DB ACEX.SLOT0 - DW %00000000101010 - DW %00010001101111 + DW %00'000'0'0010'1010 + DW %00'010'0'0110'1111 DB ACEX.SLOT1 - DW %00010000101010 - DW %11010001101111 + DW %00'010'0'0010'1010 + DW %11'010'0'0110'1111 DB ACEX.SLOT1 - DW %11010000101010 - DW %11010001101111 + DW %11'010'0'0010'1010 + DW %11'010'0'0110'1111 DB ACEX.SLOT1 - DW %00000001001010 - DW %00010001101111 + DW %00'000'0'0100'1010 + DW %00'010'0'0110'1111 DB ACEX.SLOT2 - DW %00010001001010 - DW %11010001101111 + DW %00'010'0'0100'1010 + DW %11'010'0'0110'1111 DB ACEX.SLOT2 - DW %11010001001010 - DW %11010001101111 + DW %11'010'0'0100'1010 + DW %11'010'0'0110'1111 DB ACEX.SLOT2 - DW %00000001101010 - DW %00010001101111 + DW %00'000'0'0110'1010 + DW %00'010'0'0110'1111 DB ACEX.SLOT3 - DW %00010001101010 - DW %11010001101111 + DW %00'010'0'0110'1010 + DW %11'010'0'0110'1111 DB ACEX.SLOT3 - DW %11010001101010 - DW %11010001101111 + DW %11'010'0'0110'1010 + DW %11'010'0'0110'1111 DB ACEX.SLOT3 ; DCP END MARKER DW 0,0,0 diff --git a/src/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index 7911f63..5c6665e 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -305,7 +305,7 @@ POST_1_RAM_BUS: ; высветить номер ошибочного бита LD A,(HL) - AND %11011111 ; с запятыми + AND %1101'1111 ; с запятыми OUT (Z84.PIO.Port_A.Data),A ; пауза @@ -515,10 +515,10 @@ POST_5_DATA_BUS: LD C,A .erb1: LD IX,.erbr1 - LD B,%11011111 + LD B,%1101'1111 JP OUT_C_BYTE .erbr1: - LD A,%11011111 + LD A,%1101'1111 OUT (Z84.PIO.Port_A.Data),A LD DE,0 @@ -886,8 +886,8 @@ PORTS_INIT: OUT (SYS_PORT.ROM),A ; set HDD1/not-HDD2 - LD A,#21 ;!HARDCODE сделать через метку - OUT (IDE.Chanel.Choose),A + LD A,IDE.Chanel.Primary ;!HARDCODE сделать через метку + OUT (IDE.Chanel.Set),A LD BC,#7FFD LD A,#10 @@ -962,20 +962,15 @@ init_zx_roms: OUT (SYS_PORT.ROM),A ;LD A,2 INC A ;!HARDCODE + LD B,3 ; zx-rom number of pages - IF SetFullZXromLoader - LD B,6 ; zx-rom number of pages - ELSE - //LD B,4 - LD B,3 - ENDIF -;!FIXIT переделать на функцию биоса для чтения ROM-DISK и перенести в него ПЗУ спектрума + ;!FIXIT переделать на функцию биоса для чтения ROM-DISK и перенести в него ПЗУ спектрума .loop: push bc out (ROM.SLOT0),a - or %01000000 + or %0100'0000 out (SLOT3),a - and %10111111 + and %1011'1111 LD HL,0 LD DE,#C000 @@ -1005,25 +1000,19 @@ init_zx_roms: LD B,#44 ; page CALL .SET_ROM - LD A,#E0 ;!HARDCODE ROM-ID - BIOS - LD B,#45 ; page - CALL .SET_ROM + ; LD A,#E0 ;!HARDCODE ROM-ID - BIOS + ; LD B,#45 ; page + ; CALL .SET_ROM - LD A,#EB ;!HARDCODE ROM-ID - BIOS-1 - IF SetFullZXromLoader - LD B,#46 ; page - ELSE - LD B,#45 ; page - ENDIF - CALL .SET_ROM + ; LD A,#EB ;!HARDCODE ROM-ID - BIOS-1 + ; LD B,#45 ; page + ; CALL .SET_ROM + ; LD A,#EF ;!HARDCODE ROM-ID - BIOS-2 + ; LD B,#47 ; page + ; CALL .SET_ROM - IF SetFullZXromLoader - LD A,#EF ;!HARDCODE ROM-ID - BIOS-2 - LD B,#47 ; page - CALL .SET_ROM - ENDIF RET .SET_ROM: @@ -1538,34 +1527,32 @@ ROM_DISK.Pages.Number: ; у страниц выставлен bit4 для корректной подстановки ;(подробнее в sp2000.inc - Порт управления страницами ПЗУ) ROM_DISK.Pages: ; страницы ROM-Disk - IFN SetFullZXromLoader - ABYTE #10 #06,#07,#09,#0A,#0B ; 81920 bytes - ELSE - ABYTE #10 #09,#0A,#0B ; 49152 bytes - ENDIF + ABYTE #10 #05,#06,#07,#09,#0A,#0B ; 98304 bytes .Size EQU $-ROM_DISK.Pages ;-----------------------------------------------------------------------; +;#######################################################################; ; - _mInfoBLOCK ToBIOS_FromEXT-$,#FF -;------------[Return to ROM]------------ + +;---------[Return to EXTENSION]--------- + _mInfoBLOCK #3FD0-$,#FF ; ToBIOS_FromEXT ; #3FD0 -; Для вызова функций биоса из страницы 0 ПЗУ (ROM Extension) -FN1_RET: +; Для вызова функций биоса из страницы 0 ПЗУ (Extension) +RET_to_EXTENSION: PUSH AF LD A,ROM.EXTENSION OUT (SYS_PORT.ROM),A POP AF - RST #18 - JR FN1_RET + RST ToBIOS_18 + JP RET_to_EXTENSION -; !TODO Free 7 bytes +; !TODO Free 6 bytes ;--------------------------------------- ; +;---------------[ Free ]---------------- ; _mInfoBLOCK #3FE0-$,#FF -;---------------[ Free ]---------------- ; !TODO Free 8 bytes and entry point ;SOUND_TEST: ; LD A,ROM.EXPANSION @@ -1589,16 +1576,16 @@ EXP_HDD: ; - _mInfoBLOCK #3FF0-$,#FF ;---------------[ Free ]---------------- + _mInfoBLOCK #3FF0-$,#FF ; !TODO Free 8 bytes and entry point ;--------------------------------------- ; ; +;----[ From TR-DOS to API #80..#FF ]----- _mInfoBLOCK #3FF8-$,#FF -;-----[ From TR-DOS to API #80..#FF]----- ; Точка входа/выхода для TR-DOS EXP_FNS_RET: PUSH AF diff --git a/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm b/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm index ac36ae1..51db532 100644 --- a/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm +++ b/src/bios/exp/EXTENDED/HDD_DRIVER_6.asm @@ -90,16 +90,16 @@ SELECTH: DEC A LD IY,IDE.INIT_TBL_IDE1 - JR Z,SELHH - DEC A ;R02 - LD IY,IDE.INIT_TBL_IDE2 ;R02 - JR Z,SELHH ;R02 - DEC A ;R02 - LD IY,IDE.INIT_TBL_IDE3 ;R02 - + ;R02 + JR Z,SELHH + DEC A + LD IY,IDE.INIT_TBL_IDE2 + JR Z,SELHH + DEC A + LD IY,IDE.INIT_TBL_IDE3 + ;R02 JR NZ,NODRIVE -SELHH: - EXX +SELHH: EXX LD C,SLOT3 IN B,(C) LD A,SYS_PAGE @@ -107,14 +107,14 @@ SELHH: LD A,(IY+IDE.HDD_INIT_TABLE.Chanel) AND #01 - LD A,#01 ;SECONDARY + LD A,IDE.Chanel.Secondary JR NZ,SELCHAN - LD A,#21 ;PRIMARY + LD A,IDE.Chanel.Primary SELCHAN: - OUT (#BC),A ;R02 ; !HARDCODE ; !HARDCODE + OUT (IDE.Chanel.Set),A ;R02 LD A,(IY+IDE.HDD_INIT_TABLE.DriveType) - CP IDE.Device.HDD + CP IDE.Device.HDD ;!FIXIT возможно, нахрен не нужно, потому-что если CD, то прилетит в драйвер CD LD A,(IY+IDE.HDD_INIT_TABLE.Chanel) OUT (C),B LD BC,IDE.Write.DriveCtrl @@ -123,7 +123,7 @@ SELCHAN: EXX RET Z NODRIVE: - LD A,2 + LD A,2 ;!HARDCODE SCF RET @@ -273,8 +273,7 @@ RST8RDR: RET ;READ SECTOR(S) -RDS000: - CALL SELECTH +RDS000: CALL SELECTH RET C EXX LD DE,#C140 ;WAIT BUSY=0 & READY=1 & ERR=0 @@ -293,6 +292,7 @@ RDS000: LD BC,IDE.Write.Command LD A,#020 ;READ WITH RETRY OUT (C),A +;????? ;SAVE HL! RDS002: EXX LD DE,#8908 ;WAIT BUSY=0 & DRQ=1 & ERR=0 @@ -300,22 +300,31 @@ RDS002: EXX CALL WAITPRT EXX RET C - NOP ;R01 REMOVED "DI" ; !FIXIT + ;NOP ;R01 REMOVED "DI" ; !FIXIT IN A,(SLOT3) EX AF,AF' LD A,XH OUT (SLOT3),A LD BC,IDE.Read.Data - LD D,#20 -RDS003: - DUP 16 - INI - EDUP - DEC D - JR NZ,RDS003 + ; LD D,#20 + +;!TEST v +RDS003: DUP 16 + INI + EDUP + JP NZ,RDS003 +RDS004: DUP 16 + INI + EDUP + JP NZ,RDS004 + + ; DEC D + ; JR NZ,RDS003 +;!TEST ^ + EX AF,AF' OUT (SLOT3),A - EI + ;EI ; LD A,H OR L @@ -341,7 +350,7 @@ RDS003: LD BC,IDE.Read.Status IN A,(C) BIT IDE.ControlBit.DataRequest,A - JR NZ,RDS002 + JP NZ,RDS002 XOR A RET @@ -658,9 +667,14 @@ WAITPRT: .P0: IN A,(C) AND D CP E - JR NZ,.P2 - AND A - RET + + ;!TEST + RET Z + ;JR NZ,.P2 + ;AND A + ;RET + ; + .P2: DEC HL LD A,L OR H diff --git a/src/bios/exp/FUNC_4x.ASM b/src/bios/exp/FUNC_4x.ASM index 5d4c999..87b740a 100644 --- a/src/bios/exp/FUNC_4x.ASM +++ b/src/bios/exp/FUNC_4x.ASM @@ -666,11 +666,11 @@ HD_CALC_LOOP2: FN_HDD_PART: BIT 0,A - LD A,#21 ; !HARDCODE + LD A,IDE.Chanel.Primary JR Z,.SET_CH - LD A,#01 ; !HARDCODE + LD A,IDE.Chanel.Secondary .SET_CH: - OUT (IDE.Chanel.Choose),A + OUT (IDE.Chanel.Set),A RET ; ENDMODULE diff --git a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM index fbeaaf5..7edc90c 100644 --- a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM +++ b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM @@ -81,12 +81,9 @@ 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 ; For BASIC128/BASIC48/TRDOS/EXPANSION - ;!FIXIT выяснилось, что эмулятор ПЗУ умеет больше страниц. Всего 10. - IF SetFullZXromLoader - DB #46,#47 - ENDIF - DB #FF ; End of the block + ; эмулятор ПЗУ + 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 ;; Block #2 - нельзя освобождать DB 0 ; for Spectrum diff --git a/src/bios/loader/loader.asm b/src/bios/loader/loader.asm index b7fd045..36fd1f5 100644 --- a/src/bios/loader/loader.asm +++ b/src/bios/loader/loader.asm @@ -1,10 +1,7 @@ ; ;**********************************; -; FLEX Loading program ; +; ACEX Loading program ; ;**********************************; -; ORG 0 - -; INCLUDE 'src/bios/shared/SPRINT00.asm' MACRO Conf_loader altera_chip .START: DI diff --git a/src/bios/rom/ROM.asm b/src/bios/rom/ROM.asm index ba5a3a2..906bbdf 100644 --- a/src/bios/rom/ROM.asm +++ b/src/bios/rom/ROM.asm @@ -88,259 +88,11 @@ JPHL: JP (HL) ; ;----------------------------[ FOR ZX-MODE ]----------------------------; - IF BIOS_ZXMODE ;!HARDCODE на этот адрес #С0 прыгает в vROM Basic-48 по адресу #3CF0 ; можно попробовать переделать этот адрес там - _mInfoBLOCK #C0-$,0 -;BEGIN: -; Вход через USR 15600 -RET_FROM_BIOS_TO_BASIC48: - CALL CH_2 - CALL COMAND_LINE ; ВЫПОЛНЕНИЕ КОМАНДЫ, ЕСЛИ ЕСТЬ - ; Вход без команды - JP SW_ROM_1 ; ВОЗВРАТ В << MAIN MENU >> - -;-----------------------------------------------------------------------; -; - - -; -;----------------------------[ ??????????? ]----------------------------; -; TURBO_OFF: -; LD A,D_TBOFF -; OUT (SYS_PORT.ON),A -; RET -; -; TURBO_ON: -; LD A,D_TBON -; OUT (SYS_PORT.ON),A -; RET -; -; JP_HL: JP (HL) -; -;PRINT_LINE: -; LD A,(HL) -; INC HL -; CP 0FFh -; RET Z -; RST 10H -; JR PRINT_LINE -; -; JP RESET_128 -;-----------------------------------------------------------------------; -; - - -;-----------------------------------------------------------------------; -; ******* SERVICE ******* -;-----------------------------------------------------------------------; - -;------[ ДЕШИФРАЦИЯ КОМАНДНОЙ СТРОКИ,ПЕРЕДАННОЙ ДЛЯ "EXPANSION" ]-------; -COMAND_LINE: - LD HL,(#5C5D) ;!HARDCODE CH_ADR -COMAND_LOOP: - LD A,(HL) - INC HL - CP ":" - JR Z,COMAND_L1 - CP #0D - JR NZ,COMAND_LOOP - RET - -COMAND_L1: - LD A,(HL) - CP #EA ;!HARDCODE - RET NZ - INC HL -COMAND_OK: ; ОБНАРУЖЕНА КОМАНДА ДЛЯ 'expansion' - LD A,(HL) - INC HL - CP ':' - JP Z,MENU_S1 - CP #0D - JP Z,MENU_S1 - CP 'I' - JR Z,COMAND_ISD - CP 'i' - JR Z,COMAND_ISD - CP 'T' - JR Z,TASK_SWITCH - CP 't' - JR Z,TASK_SWITCH - DEC HL - POP BC - JP BASIC_MENU -MENU_S1: - POP BC - CALL SERVICE - JP SW_ROM_1 - -COMAND_ISD: - LD A,(HL) - INC HL - CP 'S' - JP Z,COMAND_ISD2 - CP 's' - JP Z,COMAND_ISD2 - RET - -COMAND_ISD2: - POP BC - CALL ISDOS - JP SW_ROM_1 - - -TASK_SWITCH: -; *** Сохранить задачу *** - PUSH IY - PUSH IX - PUSH AF - PUSH BC - PUSH DE - PUSH HL - - EXX - EX AF,AF' - - PUSH AF - PUSH BC - PUSH DE - PUSH HL - - LD A,R - PUSH AF - LD A,I - PUSH AF - - LD A,(HL) - RLCA - RLCA - RLCA - RLCA - AND 30H ; новая задача 0..3 - LD C,A - - IN A,(SLOT3) - LD B,A ; 3-я страница текущей задачи - LD A,SYS_PAGE - OUT (SLOT3),A - - LD IX,SYS_PAGE.TASK_DATA ; данные задач - LD E,(IX) ; старая задача - LD D,0 - ADD IX,DE ; данные текущей задачи - LD E,16 - ADD IX,DE ; смещение данных в таблице задач - - LD (IX+1),B ; сохранить страницу 3 - LD HL,0 - ADD HL,SP - LD (IX+2),L ; сохранить стек задачи - LD (IX+3),H - SET 0,(IX) ; установить флаг сохраненности текущей задачи - RES 1,(IX) ; установить флаг, что задача покинута - - LD IX,SYS_PAGE.TASK_DATA - LD E,C - LD D,0 - ADD IX,DE ; новая задача - LD E,16 - ADD IX,DE ; смещение данных в таблице задач - - BIT 1,(IX) -; JR NZ,TASK_IN_WORK ; задача в работе ??? неверное завершение - ; сбрасывать или просто возвращаться - - BIT 0,(IX) ; была сохранена/нет - JR NZ,TASK_SET ; задача существует - -; задачи не было! - LD IX,SYS_PAGE.TASK_DATA - LD A,C ; задача - LD (IX),A ; установить новую задачу текущей - - JP SPECTRUM_TASK ; запустить новую задачу! -; и пока пофиг распределение памяти! - -TASK_SET: - LD IX,TASK_RESTORE - LD A,C - EXX - JP INIT_PAGES ; переключить все страницы! - -TASK_RESTORE: - EXX - LD A,SYS_PAGE - OUT (SLOT3),A - LD A,C - LD IX,SYS_PAGE.TASK_DATA - LD (IX),A ; установить новую задачу текущей - - LD E,A - LD D,0 - ADD IX,DE ; новая задача - LD E,16 - ADD IX,DE - - LD L,(IX+2) ; вспомнить стек - LD H,(IX+3) - LD SP,HL - LD A,(IX+1) ; вспомнить третью страницу - OUT (SLOT3),A - - - POP AF ; восстановить - LD I,A - POP AF - LD R,A - POP HL - POP DE - POP BC - POP AF - EX AF,AF' - EXX - POP HL - POP DE - POP BC - POP AF - POP IX - POP IY - ; вернуться в задачу - -NO_TASK: - POP BC - JP SW_ROM_1 - -; 259F - ADRESS BASIC128 - MAIN_MENU -;-----------------------------------------------------------------------; - - - -;-----------------------------------------------------------------------; -; *** UTILITES *** -;-----------------------------------------------------------------------; - -; C_0030: ; получить раб обл -; CALL_48X 0030h -; RET -C_19E8: ; очистить раб обл - CALL_48X #19E8 ;!HARDCODE - RET -C_1655: ; получить пространство - CALL_48X #1655 ;!HARDCODE - RET -CLS: -C_0D6B: CALL_48 #0D6B ;!HARDCODE - RET -CH_2: LD A,2 -C_1601: ; OPEN CHANEL - CALL_48 #1601 ;!HARDCODE - RET - - INCLUDE '../exp/ZX_MENU.ASM' - INCLUDE '../exp/ZX_MODE.ASM' - ENDIF + INCLUDE 'ZX/ZX_FUNC.ASM' + INCLUDE 'ZX/ZX_MENU.ASM' ;-----------------------------------------------------------------------; ; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; ; @@ -353,48 +105,48 @@ C_1601: ; OPEN CHANEL BLOCK_Setup EQU $ ; - IF PACKED_MAIN - BLOCK ROM_MAP.SETUP-$,#FF + IF PACKED_MAIN + BLOCK ROM_MAP.SETUP-$,#FF - DISP COMPILE_ADDR.SETUP + DISP COMPILE_ADDR.SETUP ; Depacker version SETUP_MAIN: - LD HL,DEPACKER.UnpackedEXECaddr; точка входа в распакованном коде - PUSH HL - LD DE,DEPACKER.WorkAddr ; адрес процедуры депакера - PUSH DE + LD HL,DEPACKER.UnpackedEXECaddr; точка входа в распакованном коде + PUSH HL + LD DE,DEPACKER.WorkAddr ; адрес процедуры депакера + PUSH DE - LD HL,DEPACKER.Addr - LD BC,DEPACKER.Length - LDIR + LD HL,DEPACKER.Addr + LD BC,DEPACKER.Length + LDIR - LD HL,DEPACKER.PackedMAIN ; где архив - LD DE,DEPACKER.UnpackAddr ; куда распаковывать - RET + LD HL,DEPACKER.PackedMAIN ; где архив + LD DE,DEPACKER.UnpackAddr ; куда распаковывать + RET -.Depacker EQU $ - ENT +.Depacker EQU $ + ENT ;-----------------[v] DEPACK_DATA: - DISP DEPACKER.WorkAddr - MODULE UnPacker - INCLUDE 'src/bios/ROM/SETUP/DEHRUST.asm' ; !TODO сделать на LUA автовыбор декомпрессора и компрессора -PackedMAIN: INCBIN 'Build/Bin/temp/MAIN.PAK' - ENDMODULE - ENT + DISP DEPACKER.WorkAddr + MODULE UnPacker + INCLUDE 'src/bios/ROM/SETUP/DEHRUST.asm' ; !TODO сделать на LUA автовыбор декомпрессора и компрессора +PackedMAIN: INCBIN 'Build/Bin/temp/MAIN.PAK' + ENDMODULE + ENT DEPACK_DATA.length EQU $-DEPACK_DATA ;-----------------[^] - ELSE - DISP COMPILE_ADDR.SETUP - ShowInfo 'Setup block DISP start', 1 ; !!!!! test -SETUP_MAIN: INCLUDE 'src/bios/ROM/SETUP/Main.asm' - ShowInfo 'Setup block DISP end', 1 ; !!!!! test - ENT - ENDIF + ELSE + DISP COMPILE_ADDR.SETUP + ShowInfo 'Setup block DISP start', 1 ; !!!!! test +SETUP_MAIN: INCLUDE 'src/bios/ROM/SETUP/Main.asm' + ShowInfo 'Setup block DISP end', 1 ; !!!!! test + ENT + ENDIF ShowInfo 'Setup block of ROM end', 0 ; !!!!! test @@ -443,17 +195,6 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup ;************************* _mInfoBLOCK #3CF0-$,0 - IF BIOS_ZXMODE -/* -;BEGIN: -; Вход через USR 15600 -RET_FROM_BIOS_TO_BASIC48: - CALL CH_2 - CALL COMAND_LINE ; ВЫПОЛНЕНИЕ КОМАНДЫ, ЕСЛИ ЕСТЬ - ; Вход без команды - JR SW_ROM_1 ; ВОЗВРАТ В << MAIN MENU >> -*/ - ENDIF ;JMP_48: ; LD HL,00h ; JR JP_HL_48 @@ -540,7 +281,7 @@ SW_ROM: ; -;*************************************** +;--------------------------------------- ; _mInfoBLOCK #3FC6-$,#FF ;!FIXIT переделать ПЗУ трдоса и спектрумов под правильный вызов функций биоса (а не вместо функций 4x функции 0x) ; или можно добавить функции @@ -552,39 +293,38 @@ SW_ROM: ; SET 6,C ; RST_to_BIOS ; JR RET_TO_TRDOS -;*************************************** +;--------------------------------------- ; -;---------------[SET BIOS]--------------- - _mInfoBLOCK ToBIOS_FromEXT-$,#FF ; #3FD0 +;--------------[GOTO BIOS]-------------- ; call BIOS from EXTENSION -;RST18h: + _mInfoBLOCK #3FD0-$,#FF ; ToBIOS_FromEXT PUSH AF - LD A,ROM.BIOS ; set exp-rom to slot0 + LD A,ROM.BIOS ; set BIOS to slot0 OUT (SYS_PORT.ROM),A POP AF RET ;--------------------------------------- - +;!FIXIT переделать ПЗУ трдоса и спектрумов под правильный вызов функций биоса (а не вместо функций 4x функции 0x) ;--------[ From TR-DOS to HDD part2]-------- _mInfoBLOCK #3FD8-$,#FF TRDOS_HD_CMD: POP AF - SET 6,C ;!FIXIT переделать ПЗУ трдоса и спектрумов под правильный вызов функций биоса (а не вместо функций 4x функции 0x) + SET 6,C RST_to_BIOS JR RET_TO_TRDOS ;--------------------------------------- -;!FIXIT остатки от спектрума +;!FIXIT остатки от тестов Ивана со звуковой картой ;-------------[SND_TEST_RET]------------- _mInfoBLOCK #3FE0-$,#FF -SND_TEST_RET: - LD A,ROM.BIOS - OUT (SYS_PORT.RAM),A -; JP SOUND_TEST - JP #0000 +; SND_TEST_RET: +; LD A,ROM.BIOS +; OUT (SYS_PORT.RAM),A +; ;JP SOUND_TEST +; JP #0000 ;--------------------------------------- @@ -599,8 +339,8 @@ SND_TEST_RET: ;--------------------------------------- -;!FIXIT эта точка входа очень странная из страницы в страницу прыгает -;---------[ From TR-DOS to HDD ]-------- +;!FIXIT Можно поправить номера функций при вызовах из TR-DOS и прыгать сразу в BIOS +;-------[ From TR-DOS to API 4x ]------- _mInfoBLOCK #3FF0-$,255 RET_TO_TRDOS: PUSH AF @@ -614,12 +354,10 @@ RET_TO_TRDOS: ;-----[???????????????????????????]----- _mInfoBLOCK #3FF8-$,255 -A3FF8: PUSH AF - LD A,ROM.BIOS - OUT (SYS_PORT.RAM),A -; !FIXIT может убрать заглушку и сделать, чтоб переключалось на BIOS и дальше как в EXP_FNS_RET ? -; или своего чего-нибудь добавить. - JP #0000 + ; PUSH AF + ; LD A,ROM.BIOS + ; OUT (SYS_PORT.RAM),A + ; JP #0000 ;--------------------------------------- _mInfoBLOCK #4000-$,255 ;======================================= diff --git a/src/bios/rom/SETUP/AUTOIDE.asm b/src/bios/rom/SETUP/AUTOIDE.asm index 0fc571d..8dcc596 100644 --- a/src/bios/rom/SETUP/AUTOIDE.asm +++ b/src/bios/rom/SETUP/AUTOIDE.asm @@ -95,7 +95,7 @@ CDAUTO: JP CDMASTR SELECT_IDE: - AND A ;%00000011 + AND A ;%0000'0011 LD D,#A0 JR Z,IAUTO0 DEC A @@ -107,14 +107,14 @@ SELECT_IDE: DEC A ;R00 LD D,#B0 ;R00 IAUTO1: - LD A,#01 ;R00 ;SELECT SECONDARY - OUT (#BC),A ;R00 + LD A,IDE.Chanel.Secondary ;R00 ;SELECT SECONDARY + OUT (IDE.Chanel.Set),A ;R00 LD A,1 JR IAUTO ;R00 IAUTO0: - LD A,#21 ;R00 ;SELECT PRIMARY - OUT (#BC),A ;R00 + LD A,IDE.Chanel.Primary ;R00 ;SELECT PRIMARY + OUT (IDE.Chanel.Set),A ;R00 LD A,0 IAUTO: LD (ICHANEL),A diff --git a/src/bios/rom/SETUP/MAIN.asm b/src/bios/rom/SETUP/MAIN.asm index 1589a63..5411559 100644 --- a/src/bios/rom/SETUP/MAIN.asm +++ b/src/bios/rom/SETUP/MAIN.asm @@ -108,7 +108,7 @@ MAIN_START: POP HL LD SP,STACK PUSH HL - ld (RET_TO_EXP_ADDR),hl + LD (RET_TO_EXP_ADDR),hl JP START ; DB "(C) 2002 PETERS PLUS LTD " RET_TO_EXP_ADDR: WORD 0000 ; place for save ret address to exp @@ -120,8 +120,6 @@ RET_TO_EXP_ADDR: WORD 0000 ; p GETTIME: PUSH HL LD D,4 ;HOURS - ;LD C,BIOS.CMOS_RD - ;RST_to_BIOS CALL CMOS_RD CP #24 ;24 jp nc,.error @@ -129,8 +127,6 @@ GETTIME: INC HL LD D,2 ;MINUTES - ;LD C,BIOS.CMOS_RD - ;RST_to_BIOS CALL CMOS_RD CP #5A ; 60 jp nc,.error @@ -138,8 +134,6 @@ GETTIME: INC HL LD D,0 ;SECONDS - ;LD C,BIOS.CMOS_RD - ;RST_to_BIOS CALL CMOS_RD CP #5A ; 60 jp nc,.error @@ -147,8 +141,6 @@ GETTIME: INC HL LD D,7 ;DAY - ;LD C,BIOS.CMOS_RD - ;RST_to_BIOS CALL CMOS_RD CP #32 ;32 jp nc,.error @@ -156,8 +148,6 @@ GETTIME: INC HL LD D,8 ;MONTH - ;LD C,BIOS.CMOS_RD - ;RST_to_BIOS CALL CMOS_RD CP #13 ;13 jp nc,.error @@ -165,8 +155,6 @@ GETTIME: INC HL LD D,#32 ;CENTURY - ;LD C,BIOS.CMOS_RD - ;RST_to_BIOS CALL CMOS_RD CP #1A ;20 jp c,.error @@ -176,8 +164,6 @@ GETTIME: INC HL LD D,9 ;YEAR - ;LD C,BIOS.CMOS_RD - ;RST_to_BIOS CALL CMOS_RD CP #9A ;100 jp nc,.error @@ -245,35 +231,25 @@ GETTIME: ; если батарейка села, то при чеке кмоса выдавать соответствующую ошибку и, возможно, работать как без кмоса. CMOSINIT: LD D,CMOS.Register.CTRLregA ; !FIXIT FREQ - ;LD C,BIOS.CMOS_RD - ;RST_to_BIOS CALL CMOS_RD CP #26 ; !FIXIT JR NZ,CMSERR LD D,CMOS.Register.CTRLregC - ;LD C,BIOS.CMOS_RD - ;RST_to_BIOS CALL CMOS_RD CP #50 RET Z CMSERR: LD D,CMOS.Register.CTRLregB LD A,#82 ;TIME FORMAT ; !FIXIT CMOS - ;LD C,BIOS.CMOS_WR - ;RST_to_BIOS CALL CMOS_WR LD D,CMOS.Register.CTRLregA LD A,#26 ; !FIXIT CMOS FREQ - ;LD C,BIOS.CMOS_WR - ;RST_to_BIOS CALL CMOS_WR LD D,CMOS.Register.CTRLregC LD A,#0 ; !FIXIT CMOS - ;LD C,BIOS.CMOS_WR - ;RST_to_BIOS CALL CMOS_WR LD HL,GETTIME.default_date @@ -281,8 +257,6 @@ CMSERR: LD D,CMOS.Register.CTRLregB LD A,#02 ;TIME FORMAT ; !FIXIT CMOS - ;LD C,BIOS.CMOS_WR - ;RST_to_BIOS CALL CMOS_WR ; LD D,13 @@ -316,8 +290,6 @@ MEMLOOP: LD L,A CALL NZ,RCHAIN DJNZ MEMLOOP - ;LD C,BIOS.InitMem - ;RST_to_BIOS CALL EMM.InitMem LD BC,#400E ;!HARDCODE CALL G_VALUE @@ -423,21 +395,15 @@ INSTALL: LD IX,win_descriptor.tab80x32 LD HL,#0000 LD E,1 - ;LD C,BIOS.WIN_OPEN - ;RST_to_BIOS CALL WIN_OPEN LD DE,0 LD HL,#2050 - ;LD BC,7*256 + BIOS.LP_CLS_WIN - ;RST_to_BIOS LD B,7 CALL LP_CLS_WIN LD DE,0 LD HL,#0820 - ;LD BC,0*256 + BIOS.LP_CLS_WIN - ;RST_to_BIOS LD B,0 CALL LP_CLS_WIN @@ -445,7 +411,6 @@ INSTALL: CALL GET_ID LD DE,#0028 ; !HARDCODE - ;CALL ScreenPOS.LOCAT CALL LP_SET_PLACE LD HL,memBUFFER.ID LD A,COLORS.INC.LCYAN @@ -455,14 +420,12 @@ INSTALL: CALL CPRINTZ LD DE,#0128 ; !HARDCODE - ;CALL ScreenPOS.LOCAT CALL LP_SET_PLACE LD A,msgStrings.copyRightPeters LD E,COLORS.INC.LGREEN CALL POSTMSC LD DE,#0228 ; !HARDCODE - ;CALL ScreenPOS.LOCAT CALL LP_SET_PLACE LD A,msgStrings.copyRightSPTeam LD E,COLORS.INC.GREEN @@ -470,7 +433,6 @@ INSTALL: IF DEBUG LD DE,#0328 - ;CALL ScreenPOS.LOCAT CALL LP_SET_PLACE LD A,msgStrings.testBIOSmsg LD E,COLORS.FLASH + COLORS.INC.RED ; !HARDCODE @@ -656,8 +618,6 @@ CHEKOK: ;CALL ScreenPOS.GET_CUR LD A,msgStrings.spMemory CALL POSTMSG - ;LD C,BIOS.GetMemSize - ;RST_to_BIOS CALL EMM.GetMemSize PUSH BC CALL PMEMORY @@ -785,50 +745,36 @@ COMPARE: writeDateTimeToCmos: ;!FIXIT LD A,(HL) LD D,CMOS.Register.hours - ;LD C,BIOS.CMOS_WR - ;RST_to_BIOS CALL CMOS_WR INC HL LD A,(HL) LD D,CMOS.Register.minutes - ;LD C,BIOS.CMOS_WR - ;RST_to_BIOS CALL CMOS_WR INC HL LD A,(HL) LD D,CMOS.Register.seconds - ;LD C,BIOS.CMOS_WR - ;RST_to_BIOS CALL CMOS_WR INC HL LD A,(HL) LD D,CMOS.Register.date - ;LD C,BIOS.CMOS_WR - ;RST_to_BIOS CALL CMOS_WR INC HL LD A,(HL) LD D,CMOS.Register.month - ;LD C,BIOS.CMOS_WR - ;RST_to_BIOS CALL CMOS_WR INC HL LD A,(HL) LD D,CMOS.Register.century - ;LD C,BIOS.CMOS_WR - ;RST_to_BIOS CALL CMOS_WR INC HL LD A,(HL) LD D,CMOS.Register.year - ;LD C,BIOS.CMOS_WR - ;RST_to_BIOS CALL CMOS_WR RET @@ -910,24 +856,18 @@ RECOVERYstart: ; прибиваем последний рамдиск, если занят .killRAMdisk: LD A,SYS_PAGE.RAMD_KEYS.NUM-1 LD (.RDkey),A - ;LD C,BIOS.FreeMemRMD - ;RST_to_BIOS CALL EMM.FreeMemRMD JR NC,.setRAMdisk JR Z,.setRAMdisk RET ; непонятная ошибка - выходим .setRAMdisk: LD A,(.RDkey) - ;LD BC,ROM_DISK.Pages.Size * 256 + BIOS.GetMemRMD - ;RST_to_BIOS LD B,ROM_DISK.Pages.Size CALL EMM.GetMemRMD JR NC,.IMGread ; свободный рамдиск найден DEC A JR Z,.FreeMem ; ошибка - недостаточно памяти, вызываем очистку памяти RET ; непонятная ошибка - выходим -.FreeMem: ;LD C,BIOS.FullInit - ;RST_to_BIOS - CALL EMM.FullInit +.FreeMem: CALL EMM.FullInit JR .killRAMdisk ; @@ -985,8 +925,6 @@ FDSTART: LD A,msgStrings.bootFdd CALL POSTMSG POP AF - ;LD C,BIOS.DRV_RESET - ;RST_to_BIOS CALL FDD_5x.RESET POP BC RET C @@ -1378,8 +1316,6 @@ PIDNUM: LD HL,memBUFFER.ID RET PIDBOARD: - ;LD BC,1*256 + BIOS.FN_CRIPT - ;RST_to_BIOS LD B,1 CALL FN_CRIPT @@ -1576,10 +1512,10 @@ NOCOPYC: TRQUICK: ;REGISTER #1E -; %00000011 - TR DOS A: Default / FDD / HDD / RMD -; %00001100 - TR DOS B: Default / FDD / HDD / RMD -; %00110000 - TR DOS C: Default / FDD / HDD / RMD -; %11000000 - TR DOS D: Default / FDD / HDD / RMD +; %0000'0011 - TR DOS A: Default / FDD / HDD / RMD +; %0000'1100 - TR DOS B: Default / FDD / HDD / RMD +; %0011'0000 - TR DOS C: Default / FDD / HDD / RMD +; %1100'0000 - TR DOS D: Default / FDD / HDD / RMD LD BC,#031E LD A,0 CALL TRDOSX diff --git a/src/bios/rom/SETUP/SETTINGS.asm b/src/bios/rom/SETUP/SETTINGS.asm index 5b91ca0..a687f54 100644 --- a/src/bios/rom/SETUP/SETTINGS.asm +++ b/src/bios/rom/SETUP/SETTINGS.asm @@ -9,8 +9,6 @@ SETTINGS: LD HL,#2050 LD A,(NORCLR) LD B,A - ;LD C,BIOS.LP_CLS_WIN - ;RST_to_BIOS CALL LP_CLS_WIN @@ -371,14 +369,10 @@ FSCREEN: HALT FSC1: PUSH DE - ;LD C,BIOS.LP_SET_PLACE - ;RST_to_BIOS CALL LP_SET_PLACE LD A,(NORCLR) LD E,A - ;LD BC,#50*256+BIOS.LP_PRINT_ATR ;#5083 - ;RST_to_BIOS LD B,#50 CALL LP_PRINT_ATR @@ -747,123 +741,88 @@ SETDEF: ;!TODO RET ;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[v] - IF NEW_FEATURE ; New procedure with IY reg + IF NEW_FEATURE Get_Item_Address: - LD A,(ITEM) - LD L,A - LD H,0 - LD DE,SettingsItemsTabsAddrs - ADD HL,HL - ADD HL,DE - LD A,(HL) - INC HL - LD H,(HL) - LD L,A - PUSH HL - POP IY - RET - ELSE + LD A,(ITEM) + LD L,A + LD H,0 + LD DE,SettingsItemsTabsAddrs + ADD HL,HL + ADD HL,DE + LD A,(HL) + INC HL + LD H,(HL) + LD L,A + PUSH HL + POP IY + RET + + ELSE Get_Item_Address: - LD A,(ITEM) - LD L,A - LD H,0 - LD DE,SettingsItemsTabsAddrs - ADD HL,HL - ADD HL,DE - LD A,(HL) - INC HL - LD H,(HL) - LD L,A - INC HL - INC HL - RET - ENDIF + LD A,(ITEM) + LD L,A + LD H,0 + LD DE,SettingsItemsTabsAddrs + ADD HL,HL + ADD HL,DE + LD A,(HL) + INC HL + LD H,(HL) + LD L,A + INC HL + INC HL + RET + ENDIF ;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[^] ; MODULE OnChangeAction nothing: ret - IF NEW_FEATURE + + ; !TODO New Feature + ; !TODO замутить что-то типа API для рисования всплывающих окон + IF NEW_FEATURE SetTime: -; !TODO New Feature -; !TODO замутить что-то типа API для рисования всплывающих окон - xor a - ld hl,#050E - ld de,#0C20 - ld ix,memBUFFER.Shared - ;ld c,BIOS.WIN_COPY - ;RST_to_BIOS_18 - CALL WIN_COPY + xor a + ld hl,#050E + ld de,#0C20 + ld ix,memBUFFER.Shared + CALL WIN_COPY - LD DE,#0C20 ; !HARDCODE - ld b,5 - DI + LD DE,#0C20 ; !HARDCODE + ld b,5 + DI -.loop: push bc - push de - ;CALL ScreenPOS.LOCAT - CALL LP_SET_PLACE - ; печать атрибутов - LD E,COLORS.INC.RED - ;LD BC,#0E * 256 + BIOS.LP_PRINT_ATR - ;RST_to_BIOS_18 - LD B,#0E - CALL LP_PRINT_ATR +.loop: push bc + push de + CALL LP_SET_PLACE + ; печать атрибутов + LD E,COLORS.INC.RED + LD B,#0E + CALL LP_PRINT_ATR - pop de - inc d - pop bc - DJNZ .loop + pop de + inc d + pop bc + DJNZ .loop - CALL setFRAME.single - LD DE,#0C20 ;yx. y=0..1F, x=0..4F координаты левого верхнего угла - LD BC,#050E ;yx. длина и высота линии - CALL PBORDER + CALL setFRAME.single + LD DE,#0C20 ;yx. y=0..1F, x=0..4F координаты левого верхнего угла + LD BC,#050E ;yx. длина и высота линии + CALL PBORDER -;------------------[v] -; ВОТ ТУТ КОД - ; DISPLAY '---------------------Delete me!!!---------------------' - ; DISPLAY /A, $ - ; DISPLAY '------------------------------------------------------' -; for tests - ; ld hl,#c000 - ; ld de,319 - ; ld b,2 - ; ld a,1 - ; ex af,af' - ; ld a,#46 - ; ex af,af' - ; ld c,BIOS.BLK_RD_WR - ; RST_to_BIOS_18 -;------------------[^] + CALL KEY + xor a + ld hl,#050E + ld de,#0C20 + ld ix,memBUFFER.Shared + JP WIN_RESTORE + ENDIF - CALL KEY - xor a - ld hl,#050E - ld de,#0C20 - ld ix,memBUFFER.Shared - ;ld c,BIOS.WIN_RESTORE - ;JP_to_BIOS - ;RET - JP WIN_RESTORE - - ENDIF setXYpos: JP RESCREEN -; setVsinc: -; ld a,@CMOS.Cell.ScreenSET -; call READCMS -; and @CMOS.Cell.ScreenSET.Mask.Sinc -; SCF -; jr z,.skip ;320 -; SLA A -; .skip: ld a,128+7 ;312 -; jr nc,.set -; dec a ;320 -; .set: -; ld c,BIOS.FN_SYNC -; JP_to_BIOS + setVsinc: ld a,@CMOS.Cell.ScreenSET call READCMS @@ -894,15 +853,11 @@ setInt: ld a,@CMOS.Cell.ScreenSET SRA A SRA A SRA A ; byte %00xx0000 --> %000000xx -.set: ;ld c,BIOS.FN_SYNC - ;RST_to_BIOS_18 - CALL FN_SYNC +.set: CALL FN_SYNC LD IX,win_descriptor.tab80x32 LD HL,#0000 LD E,1 - ;LD C,BIOS.WIN_OPEN - ;RST_to_BIOS CALL WIN_OPEN ld a,(ITEM) @@ -1077,84 +1032,84 @@ DEFVAL: DB SAVERAM+EXTBIOS+SDELAY1 ;X0E - OPTIONS _mInfoALIGN 256,0 ; выравнивание на адрес #XX00 CMOSARE: - DS 14 ;!FIXIT расписать тут ячейки кмоса и это смещение меткой привязать вместо #0E в SETDEF + DS 14 ;!FIXIT расписать тут ячейки кмоса и это смещение меткой привязать вместо #0E в SETDEF - DB SAVERAM+EXTBIOS ;X0E - OPTIONS - DB TDL250+TRATE30 ;X0F - KEYBOARD - DB SDIDE1+ASDFDD2 ;X10 - SYSTEM DISKS - DB FD1720+FD2720+HD1AUTO+HD2AUTO ;X11 - FDD & HDD - DB 0 ;X12 - CYLINDERS LOW MASTER - DB 0 ;X13 - CYLINDERS HIGH MASTER - DB 0 ;X14 - HEADS MASTER - DB 0 ;X15 - SECTORS MASTER - DB 0 ;X16 - CYLINDERS LOW SLAVE - DB 0 ;X17 - CYLINDERS HIGH SLAVE - DB 0 ;X18 - HEADS SLAVE - DB 0 ;X19 - SECTORS SLAVE - DB 0 ;X1A - Int conf, Screen sync, COLOR STYLE - DB TURBON+SPRIN ;X1B - HARDARE CONF + DB SAVERAM+EXTBIOS ;X0E - OPTIONS + DB TDL250+TRATE30 ;X0F - KEYBOARD + DB SDIDE1+ASDFDD2 ;X10 - SYSTEM DISKS + DB FD1720+FD2720+HD1AUTO+HD2AUTO ;X11 - FDD & HDD + DB 0 ;X12 - CYLINDERS LOW MASTER + DB 0 ;X13 - CYLINDERS HIGH MASTER + DB 0 ;X14 - HEADS MASTER + DB 0 ;X15 - SECTORS MASTER + DB 0 ;X16 - CYLINDERS LOW SLAVE + DB 0 ;X17 - CYLINDERS HIGH SLAVE + DB 0 ;X18 - HEADS SLAVE + DB 0 ;X19 - SECTORS SLAVE + DB 0 ;X1A - Int conf, Screen sync, COLOR STYLE + DB TURBON+SPRIN ;X1B - HARDARE CONF DB BAS128 ;X1C - RESET MODE DB REBOOTM ;X1D - REBOOT MSG, HDD W/P - DB %00000000 ;X1E - TRDOS - DB %01110111 ;X1F - SCREEN POSITION - DB HD1AUTO+HD2AUTO ;X20 - Secondary HDD's - DB %00000000 ;X21 - DB %00000000 ;X22 - DB %00000000 ;X23 - DB %00000000 ;X24 - DB %00000000 ;X25 - DB %00000000 ;X26 - DB %00000000 ;X27 - DB %00000000 ;X28 - DB %00000000 ;X29 - DB %00000000 ;X2A - DB %00000000 ;X2B - DB %00000000 ;X2C - DB %00000000 ;X2D - DB %00000000 ;X2E - DB %00000000 ;X2F - DB %00000000 ;X30 - DB %00000000 ;X31 + DB %0000'0000 ;X1E - TRDOS + DB %0111'0111 ;X1F - SCREEN POSITION + DB HD1AUTO+HD2AUTO ;X20 - Secondary HDD's + DB %0000'0000 ;X21 + DB %0000'0000 ;X22 + DB %0000'0000 ;X23 + DB %0000'0000 ;X24 + DB %0000'0000 ;X25 + DB %0000'0000 ;X26 + DB %0000'0000 ;X27 + DB %0000'0000 ;X28 + DB %0000'0000 ;X29 + DB %0000'0000 ;X2A + DB %0000'0000 ;X2B + DB %0000'0000 ;X2C + DB %0000'0000 ;X2D + DB %0000'0000 ;X2E + DB %0000'0000 ;X2F + DB %0000'0000 ;X30 + DB %0000'0000 ;X31 DB #20 ;X32 - CENTURY - DB %00000000 ;X33 - DB %00000000 ;X34 - DB %00000000 ;X35 - DB %00000000 ;X36 - DB %00000000 ;X37 - DB %00000000 ;X38 - DB %00000000 ;X39 - DB %00000000 ;X3A - DB %00000000 ;X3B - DB %00000000 ;X3C - DB %00000000 ;X3D - DB %00000000 ;X3E - DB %00000000 ;X3F - CHECKSUM + DB %0000'0000 ;X33 + DB %0000'0000 ;X34 + DB %0000'0000 ;X35 + DB %0000'0000 ;X36 + DB %0000'0000 ;X37 + DB %0000'0000 ;X38 + DB %0000'0000 ;X39 + DB %0000'0000 ;X3A + DB %0000'0000 ;X3B + DB %0000'0000 ;X3C + DB %0000'0000 ;X3D + DB %0000'0000 ;X3E + DB %0000'0000 ;X3F - CHECKSUM BLOCK #100 - low $ ; добивка CMOSARE до размера в 256 байтов ;DONT MOVE !!! ADDRESS ; !TODO всё правильно? ;REGISTER #0E -; %10000000 - MEMORY TEST -; %01000000 - SAVE RAM DISKS -; %00100000 - UPDATE BIOS -; %00011000 - START DELAY -; %00000100 - LANGUAGE -; %00000010 - NOT USED -; %00000001 - QUICK START +; %1000'0000 - MEMORY TEST +; %0100'0000 - SAVE RAM DISKS +; %0010'0000 - UPDATE BIOS +; %0001'1000 - START DELAY +; %0000'0100 - LANGUAGE +; %0000'0010 - NOT USED +; %0000'0001 - QUICK START ;REGISTER #0F -; %10000000 - TYPEMATIC ON/OFF -; %01100000 - TYPEMATIC DELAY 00-250, 01-500, 10-750, 11-1000 -; %00011111 - TYPEMATIC RATE +; %1000'0000 - TYPEMATIC ON/OFF +; %0110'0000 - TYPEMATIC DELAY 00-250, 01-500, 10-750, 11-1000 +; %0001'1111 - TYPEMATIC RATE ; 0-6, 1-8, 2-10, 3-12, 4-15, 5-20, 6-24, 7-30 ;REGISTER #10 -; %00000111 - SYSTEM DISK -; %01110000 - ALT SYSTEM DISK +; %0000'0111 - SYSTEM DISK +; %0111'0000 - ALT SYSTEM DISK ;REGISTER #11 -; %00000011 - FDD FIRST 720 / 1.44 / NONE -; %00001100 - FDD SECOND -; %00110000 - IDE Primary MASTER AUTO / SETUP / DISABLED -; %11000000 - IDE Primary SLAVE -----//------ +; %0000'0011 - FDD FIRST 720 / 1.44 / NONE +; %0000'1100 - FDD SECOND +; %0011'0000 - IDE Primary MASTER AUTO / SETUP / DISABLED +; %1100'0000 - IDE Primary SLAVE -----//------ ;REGISTER #12 - CYLINDERS (MASTER) ;REGISTER #14 - HEADS (MASTER) ;REGISTER #15 - SECTORS (MASTER) @@ -1162,19 +1117,19 @@ CMOSARE: ;REGISTER #18 - HEADS (SLAVE) ;REGISTER #19 - SECTORS (SLAVE) ;REGISTER #1A -; %00001111 - COLOR STYLE -; %00110000 - Frame Int (Default/Pentagon/Scorpion/Original) -; %11000000 - Screen V-Sinc (Default/312 lines 50 HZ/320 Lines 49 Hz) +; %0000'1111 - COLOR STYLE +; %0011'0000 - Frame Int (Default/Pentagon/Scorpion/Original) +; %1100'0000 - Screen V-Sinc (Default/312 lines 50 HZ/320 Lines 49 Hz) ;REGISTER #1B - HARDWARE CONFIGURATION -; %00000001 - TURBO MODE (D0..D3 - 6 OR 7) -; %00000010 - TURBO EXCHANGE ON/OFF - 1 -; %00000100 - PORT EXCHANGE ON/OFF - 1 -; %00011000 - COMPUTER +; %0000'0001 - TURBO MODE (D0..D3 - 6 OR 7) +; %0000'0010 - TURBO EXCHANGE ON/OFF - 1 +; %0000'0100 - PORT EXCHANGE ON/OFF - 1 +; %0001'1000 - COMPUTER ; 0-SPRINTER ; 1-SPECTRUM 256 ; 2-PENTAGON 128 ; 3-OTHER -; %11100000 - RESERVED +; %1110'0000 - RESERVED ;REGISTER #1C - RESET MODE ; 0-RESET 128 Basic ; 1-RESET 48 Basic & 128 mem @@ -1183,19 +1138,19 @@ CMOSARE: ; 4-RESET TR-DOS & 48 mem ; 5-RESET 48 Basic ;REGISTER #1D -; %00000010 - Reboot message -; %00000001 - HDD Write protect +; %0000'0010 - Reboot message +; %0000'0001 - HDD Write protect ;REGISTER #1E -; %00000011 - TR DOS A: Default / FDD / HDD / RMD -; %00001100 - TR DOS B: Default / FDD / HDD / RMD -; %00110000 - TR DOS C: Default / FDD / HDD / RMD -; %11000000 - TR DOS D: Default / FDD / HDD / RMD +; %0000'0011 - TR DOS A: Default / FDD / HDD / RMD +; %0000'1100 - TR DOS B: Default / FDD / HDD / RMD +; %0011'0000 - TR DOS C: Default / FDD / HDD / RMD +; %1100'0000 - TR DOS D: Default / FDD / HDD / RMD ;REGISTER #1F ;R06 -; %11110000 - X-Screen position -; %00001111 - Y-Screen position +; %1111'0000 - X-Screen position +; %0000'1111 - Y-Screen position ;REGISTER #20 -; %00110000 - IDE Secondary MASTER AUTO / SETUP / DISABLED -; %11000000 - IDE Secondary SLAVE -----//------ +; %0011'0000 - IDE Secondary MASTER AUTO / SETUP / DISABLED +; %1100'0000 - IDE Secondary SLAVE -----//------ ; . ; . ;REGISTER #37 - CYLINDERS (MASTER) diff --git a/src/bios/rom/SETUP/VIDEO_IO.asm b/src/bios/rom/SETUP/VIDEO_IO.asm index ee00b48..d1ead64 100644 --- a/src/bios/rom/SETUP/VIDEO_IO.asm +++ b/src/bios/rom/SETUP/VIDEO_IO.asm @@ -288,17 +288,13 @@ NOWLOGO: LD HL,#0000 LD E,1 - ;LD C,BIOS.WIN_OPEN EI HALT DI - ;RST_to_BIOS CALL WIN_OPEN LD DE,0 LD HL,#0920 ;LOGOTYPE SIZE - ;LD BC,7*256 + BIOS.LP_CLS_WIN - ;JP_to_BIOS LD B,7 JP LP_CLS_WIN @@ -313,8 +309,6 @@ EASYDLY: LOGOX: LD IX,win_descriptor.tab320x256 LD HL,#0000 LD E,1 - ;LD C,BIOS.WIN_OPEN - ;RST_to_BIOS CALL WIN_OPEN SAFE_PORTY @@ -338,8 +332,6 @@ LOGOX: LD IX,win_descriptor.tab320x256 ; A = 0 LD D,A ; SET DESKTOP PALETTE & CURSOR COLORS LD E,A - ;LD BC,PIC_SET_PAL_FF - ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL @@ -351,7 +343,7 @@ LOGOX: LD IX,win_descriptor.tab320x256 ;LD A,1 OUT (ROM.SLOT0),A - LD HL,MAIN_LOGO.Raster ; начало картинки в банке ПЗУ + LD HL,MAIN_LOGO.Raster ; начало картинки в банке ПЗУ ; CALL DECODE CALL LOGO_TO_SCREEN ; @@ -374,19 +366,19 @@ win_descriptor: DB 32 DB 0 DB 0 - DB %00011011 + DB %0001'1011 DB 0 DB 0 DB 0 .tab320x256: - DB 16 ; горизонтальный размер окна в знакоместах - DB 9 ; вертикальный размер в знакоместах - DB 0 ; положение окна по горизонтали на экране - DB 0 ; положение окна по вертикали на экране - DB %00100000 ; режим знакоместа - DB 0 ; дополнительный режим знакоместа - DB 8 ; положение по X в поле графики (по знакоместам) - DB 0 ; положение по Y в поле графики (по знакоместам) + DB 16 ; горизонтальный размер окна в знакоместах + DB 9 ; вертикальный размер в знакоместах + DB 0 ; положение окна по горизонтали на экране + DB 0 ; положение окна по вертикали на экране + DB %0010'0000 ; режим знакоместа + DB 0 ; дополнительный режим знакоместа + DB 8 ; положение по X в поле графики (по знакоместам) + DB 0 ; положение по Y в поле графики (по знакоместам) MACRO _mFADE @@ -408,12 +400,10 @@ FADE: XOR A _mFADE ; A = 0 LD HL,memBUFFER.Shared - ;LD DE,#0000 ; !HARDCODE & CURSOR COLORS - ;XOR A - LD D,A - LD E,A - ;LD BC,PIC_SET_PAL_FF ; !HARDCODE #EE,#EF - ;RST_to_BIOS + ; !HARDCODE & CURSOR COLORS. LD DE,#0000 + LD D,A + LD E,A + ; LD B,def_pal_mask CALL PIC_SET_PAL @@ -434,8 +424,6 @@ go_setup: ; !FIXIT LD IX,win_descriptor.tab80x32 LD HL,#0000 LD E,1 - ;LD C,BIOS.WIN_OPEN - ;RST_to_BIOS CALL WIN_OPEN JP CSETUP @@ -531,24 +519,18 @@ SET_CGA: LD A,4 ; page_pal LD HL,memBUFFER.Shared LD DE,#0000 ; D - ELEMENTS,E - COLOR - ;LD BC,PIC_SET_PAL_FF ; #FFA4 - ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL LD A,6 ; page_pal LD HL,memBUFFER.Shared LD DE,#0000 ;D - ELEMENTS,E - COLOR - ;LD BC,PIC_SET_PAL_FF ; #FFA4 - ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL LD A,7 ; page_pal LD HL,#80*4+memBUFFER.Shared LD DE,#8080 ;D - ELEMENTS,E - COLOR - ;LD BC,PIC_SET_PAL_FF ; #FFA4 - ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL ; @@ -557,16 +539,12 @@ SET_CGA: LD A,5 ; page_pal LD HL,memBUFFER.Shared LD DE,#0000 ;D - ELEMENTS,E - COLOR - ;LD BC,PIC_SET_PAL_FF ; #FFA4 - ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL LD A,7 ; page_pal LD HL,memBUFFER.Shared LD DE,#8000 ;D - ELEMENTS,E - COLOR - ;LD BC,PIC_SET_PAL_FF ; #FFA4 - ;RST_to_BIOS LD B,def_pal_mask CALL PIC_SET_PAL ; diff --git a/src/bios/rom/SETUP/messages.z80 b/src/bios/rom/SETUP/messages.z80 index 337daa4..bdbf085 100644 --- a/src/bios/rom/SETUP/messages.z80 +++ b/src/bios/rom/SETUP/messages.z80 @@ -144,7 +144,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF ; тип параметра (строка со значением или каталог) DB columnNum,lineNum ; столбец, строка DB paramName ; Название параметра - DB #0E,%00000100,%00000100 ; CMOS, MASK + DB #0E,%0000'0100,%0000'0100 ; CMOS, MASK DB msgStrings.valLangEng ; 1-й вариант параметра DB msgStrings.valLangRus ; 2-й вариант параметра @@ -153,7 +153,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #0E,%10000000,%10000000 + DB #0E,%1000'0000,%1000'0000 DB msgStrings.valDisabled DB msgStrings.valEnabled @@ -162,7 +162,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #0E,%01000000,%01000000 + DB #0E,%0100'0000,%0100'0000 DB msgStrings.valDisabled DB msgStrings.valEnabled @@ -171,7 +171,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #0E,%00100000,%00100000 + DB #0E,%0010'0000,%0010'0000 DB msgStrings.valDisabled DB msgStrings.valEnabled @@ -180,7 +180,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #0E,%00011000,%00010000 + DB #0E,%0001'1000,%0001'0000 DB msgStrings.valDisabled DB msgStrings.valNormal DB msgStrings.valEnabled @@ -190,7 +190,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #0F,%00000111,%00000111 + DB #0F,%0000'0111,%0000'0111 DB msgStrings.val_6 DB msgStrings.val_8 DB msgStrings.val_10 @@ -205,7 +205,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #0F,%01100000,%01100000 + DB #0F,%0110'0000,%0110'0000 DB msgStrings.val_250 DB msgStrings.val_500 DB msgStrings.val_750 @@ -216,7 +216,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #1D,%00000010,%00000010 + DB #1D,%0000'0010,%0000'0010 DB msgStrings.valDisabled DB msgStrings.valEnabled @@ -225,7 +225,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #10,%00000111,%00000111 ; !!!!! + DB #10,%0000'0111,%0000'0111 ; !!!!! DB msgStrings.val1stFDD DB msgStrings.val2ndFDD DB msgStrings.val1stIDE @@ -240,7 +240,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #10,%01110000,%01110000 + DB #10,%0111'0000,%0111'0000 DB msgStrings.val1stFDD DB msgStrings.val2ndFDD DB msgStrings.val1stIDE @@ -255,7 +255,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #11,%00000011,%00000000 + DB #11,%0000'0011,%0000'0000 DB msgStrings.valAuto ; DB msgStrings.val720 ; DB msgStrings.val1440 @@ -266,7 +266,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #11,%00001100,%00000000 + DB #11,%0000'1100,%0000'0000 DB msgStrings.valAuto ; DB msgStrings.val720 ; DB msgStrings.val1440 @@ -277,7 +277,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #11,%00110000,%00110000 + DB #11,%0011'0000,%0011'0000 DB msgStrings.valAuto DB msgStrings.valSetup DB msgStrings.valCdRom @@ -288,7 +288,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #11,%11000000,%11000000 + DB #11,%1100'0000,%1100'0000 DB msgStrings.valAuto DB msgStrings.valSetup DB msgStrings.valCdRom @@ -299,7 +299,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #20,%00110000,%00110000 + DB #20,%0011'0000,%0011'0000 DB msgStrings.valAuto DB msgStrings.valSetup DB msgStrings.valCdRom @@ -310,7 +310,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #20,%11000000,%11000000 + DB #20,%1100'0000,%1100'0000 DB msgStrings.valAuto DB msgStrings.valSetup DB msgStrings.valCdRom @@ -321,7 +321,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #1D,%00000001,%00000001 + DB #1D,%0000'0001,%0000'0001 DB msgStrings.valDisabled DB msgStrings.valEnabled @@ -330,7 +330,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #1F,%11110000,%11100000 + DB #1F,%1111'0000,%1110'0000 DB msgStrings.valMinus7 DB msgStrings.valMinus6 DB msgStrings.valMinus5 @@ -352,7 +352,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #1F,%00001111,%00001110 + DB #1F,%0000'1111,%0000'1110 DB msgStrings.valPlus7 DB msgStrings.valPlus6 DB msgStrings.valPlus5 @@ -374,7 +374,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #1A,%00110000,%00110000 + DB #1A,%0011'0000,%0011'0000 DB msgStrings.valDash8 DB msgStrings.valScorpion DB msgStrings.valPentagon @@ -385,7 +385,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #1A,%11000000,%10000000 + DB #1A,%1100'0000,%1000'0000 DB msgStrings.valDash8 DB msgStrings.val312_50 DB msgStrings.val320_49 @@ -395,7 +395,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #0E,%00000001,%00000001 + DB #0E,%0000'0001,%0000'0001 DB msgStrings.valDisabled DB msgStrings.valEnabled @@ -404,7 +404,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #1E,%00000011,%00000010 + DB #1E,%0000'0011,%0000'0010 DB msgStrings.valDefault DB msgStrings.valFDD DB msgStrings.valHDD @@ -414,7 +414,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #1E,%00001100,%00001000 + DB #1E,%0000'1100,%0000'1000 DB msgStrings.valDefault DB msgStrings.valFDD DB msgStrings.valHDD @@ -424,7 +424,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #1E,%00110000,%00100000 + DB #1E,%0011'0000,%0010'0000 DB msgStrings.valDefault DB msgStrings.valFDD DB msgStrings.valHDD @@ -434,7 +434,7 @@ SettingsItemsTabs: IF NEW_FEATURE : DB paramLine : ENDIF DB columnNum,lineNum DB paramName - DB #1E,%11000000,%10000000 + DB #1E,%1100'0000,%1000'0000 DB msgStrings.valDefault DB msgStrings.valFDD DB msgStrings.valHDD @@ -445,7 +445,7 @@ SettingsItemsTabs: DB folderLine DB columnNum,lineNum DB paramName - DB #00,%00000000,%00000000 + DB #00,%0000'0000,%0000'0000 DB msgStrings.valFolder ENDIF ;--------------------[Items Addresses table]--------------------[] diff --git a/src/bios/rom/ZX/ZX_FUNC.ASM b/src/bios/rom/ZX/ZX_FUNC.ASM new file mode 100644 index 0000000..45917e5 --- /dev/null +++ b/src/bios/rom/ZX/ZX_FUNC.ASM @@ -0,0 +1,245 @@ +; Вход через USR 15600 + ASSERT $ = #C0, "Error with RET_FROM_BIOS_TO_BASIC48 address!!!" +RET_FROM_BIOS_TO_BASIC48: + CALL CH_2 + CALL COMAND_LINE ; ВЫПОЛНЕНИЕ КОМАНДЫ, ЕСЛИ ЕСТЬ + ; Вход без команды + JP SW_ROM_1 ; ВОЗВРАТ В << MAIN MENU >> + +;-----------------------------------------------------------------------; +; + + +; +;----------------------------[ ??????????? ]----------------------------; +; TURBO_OFF: +; LD A,D_TBOFF +; OUT (SYS_PORT.ON),A +; RET +; +; TURBO_ON: +; LD A,D_TBON +; OUT (SYS_PORT.ON),A +; RET +; +; JP_HL: JP (HL) +; +;PRINT_LINE: +; LD A,(HL) +; INC HL +; CP 0FFh +; RET Z +; RST 10H +; JR PRINT_LINE +; +; JP RESET_128 +;-----------------------------------------------------------------------; +; + + +;-----------------------------------------------------------------------; +; ******* SERVICE ******* +;-----------------------------------------------------------------------; + +;------[ ДЕШИФРАЦИЯ КОМАНДНОЙ СТРОКИ,ПЕРЕДАННОЙ ДЛЯ "EXPANSION" ]-------; +COMAND_LINE: + LD HL,(#5C5D) ;!HARDCODE CH_ADR +COMAND_LOOP: + LD A,(HL) + INC HL + CP ":" + JR Z,COMAND_L1 + CP #0D + JR NZ,COMAND_LOOP + RET + +COMAND_L1: + LD A,(HL) + CP #EA ;!HARDCODE + RET NZ + INC HL +COMAND_OK: ; ОБНАРУЖЕНА КОМАНДА ДЛЯ 'expansion' + LD A,(HL) + INC HL + CP ':' + JP Z,MENU_S1 + CP #0D + JP Z,MENU_S1 + CP 'I' + JR Z,COMAND_ISD + CP 'i' + JR Z,COMAND_ISD + CP 'T' + JR Z,TASK_SWITCH + CP 't' + JR Z,TASK_SWITCH + DEC HL + POP BC + JP BASIC_MENU +MENU_S1: + POP BC + CALL SERVICE + JP SW_ROM_1 + +COMAND_ISD: + LD A,(HL) + INC HL + CP 'S' + JP Z,COMAND_ISD2 + CP 's' + JP Z,COMAND_ISD2 + RET + +COMAND_ISD2: + POP BC + CALL ISDOS + JP SW_ROM_1 + + +TASK_SWITCH: +; *** Сохранить задачу *** + PUSH IY + PUSH IX + PUSH AF + PUSH BC + PUSH DE + PUSH HL + + EXX + EX AF,AF' + + PUSH AF + PUSH BC + PUSH DE + PUSH HL + + LD A,R + PUSH AF + LD A,I + PUSH AF + + LD A,(HL) + RLCA + RLCA + RLCA + RLCA + AND 30H ; новая задача 0..3 + LD C,A + + IN A,(SLOT3) + LD B,A ; 3-я страница текущей задачи + LD A,SYS_PAGE + OUT (SLOT3),A + + LD IX,SYS_PAGE.TASK_DATA ; данные задач + LD E,(IX) ; старая задача + LD D,0 + ADD IX,DE ; данные текущей задачи + LD E,16 + ADD IX,DE ; смещение данных в таблице задач + + LD (IX+1),B ; сохранить страницу 3 + LD HL,0 + ADD HL,SP + LD (IX+2),L ; сохранить стек задачи + LD (IX+3),H + SET 0,(IX) ; установить флаг сохраненности текущей задачи + RES 1,(IX) ; установить флаг, что задача покинута + + LD IX,SYS_PAGE.TASK_DATA + LD E,C + LD D,0 + ADD IX,DE ; новая задача + LD E,16 + ADD IX,DE ; смещение данных в таблице задач + + BIT 1,(IX) +; JR NZ,TASK_IN_WORK ; задача в работе ??? неверное завершение + ; сбрасывать или просто возвращаться + + BIT 0,(IX) ; была сохранена/нет + JR NZ,TASK_SET ; задача существует + +; задачи не было! + LD IX,SYS_PAGE.TASK_DATA + LD A,C ; задача + LD (IX),A ; установить новую задачу текущей + + JP SPECTRUM_TASK ; запустить новую задачу! +; и пока пофиг распределение памяти! + +TASK_SET: + LD IX,TASK_RESTORE + LD A,C + EXX + JP INIT_PAGES ; переключить все страницы! + +TASK_RESTORE: + EXX + LD A,SYS_PAGE + OUT (SLOT3),A + LD A,C + LD IX,SYS_PAGE.TASK_DATA + LD (IX),A ; установить новую задачу текущей + + LD E,A + LD D,0 + ADD IX,DE ; новая задача + LD E,16 + ADD IX,DE + + LD L,(IX+2) ; вспомнить стек + LD H,(IX+3) + LD SP,HL + LD A,(IX+1) ; вспомнить третью страницу + OUT (SLOT3),A + + + POP AF ; восстановить + LD I,A + POP AF + LD R,A + POP HL + POP DE + POP BC + POP AF + EX AF,AF' + EXX + POP HL + POP DE + POP BC + POP AF + POP IX + POP IY + ; вернуться в задачу + +NO_TASK: + POP BC + JP SW_ROM_1 + +; 259F - ADRESS BASIC128 - MAIN_MENU +;-----------------------------------------------------------------------; + + + +;-----------------------------------------------------------------------; +; *** UTILITES *** +;-----------------------------------------------------------------------; + +; C_0030: ; получить раб обл +; CALL_48X 0030h +; RET +C_19E8: ; очистить раб обл + CALL_48X #19E8 ;!HARDCODE + RET +C_1655: ; получить пространство + CALL_48X #1655 ;!HARDCODE + RET +CLS: +C_0D6B: CALL_48 #0D6B ;!HARDCODE + RET +CH_2: LD A,2 +C_1601: ; OPEN CHANEL + CALL_48 #1601 ;!HARDCODE + RET +; \ No newline at end of file diff --git a/src/bios/rom/ZX/ZX_MENU.ASM b/src/bios/rom/ZX/ZX_MENU.ASM index 79f5a03..28da5d5 100644 --- a/src/bios/rom/ZX/ZX_MENU.ASM +++ b/src/bios/rom/ZX/ZX_MENU.ASM @@ -352,4 +352,401 @@ CALL_DOS: POP HL JP DOS_PROG.Exec ; +; + +;=======================================================================; +;=======================================================================; +;=======================================================================; +SERVICE: + //LD HL,SR_TAB + LD DE,SR_MENU + LD BC,SR_MENU.Size + //PUSH HL + CALL RUN_MENU ;09f3 + LD HL,SR_TAB + //POP HL + CALL EXEC_PNT + JR SERVICE + +SR_TAB: DW UTILIT + DW GOTO_TRDOS.m128 + DW GOTO_TRDOS.m48 + DW TURBO_OFF + DW TURBO_ON + DW CLEAR_RAM + DW RET_FROM_M + +; DC - every last character of a string will have bit 7 set +SR_MENU: + BYTE 8 ; количество пунктов + BYTE 'Options ',#FF ; заголовок меню + DC 'RUN disk.trd' + DC '128 TR-DOS' + DC '48 TR-DOS' + DC 'TURBO OFF ' + DC 'TURBO ON ' + DC 'Clear RAM' + DC 'RETURN' + DC " " ; маркер конца +.Size EQU $-SR_MENU + +;***************************** + +;SR_48R: +GOTO_TRDOS: +.m128: LD A,#10 + JR .RUN +;SR_48: +.m48: LD A,#30 ; Стопор на PORT_128 !!! +;SR_48A: +.RUN: LD BC,#7FFD + OUT (C),A + LD BC,0 ; НА 0 !! + PUSH BC + LD BC,#3D2F ; В DOS ! + PUSH BC + JP SW_ROM + +;******************************* +TURBO_OFF: + LD A,BIOS.FN_TURBO.OFF + LD C,BIOS.FN_TURBO + JP_to_BIOS +TURBO_ON: + LD A,BIOS.FN_TURBO.ON + LD C,BIOS.FN_TURBO + JP_to_BIOS + +;******************************* + +CLEAR_RAM: + DI + LD C,BIOS.FullInit + RST_to_BIOS + ; при очистке памяти из меню спектрума возврат в DSS по CAD + ; будет опасным (RAM Blocks освободились), + ; поэтому отключаем перехват ресета. + ;!TODO придумать как отключать перехват только на возврат в DSS + LD A,ACEX.RET_PORT + LD BC,BIOS.SET_PORTS + CALL ToBIOS_3D13 + EI + RET + +;SR_CL_MEM: +; DI +; LD A,10H +;SR_CL_R2: +; LD BC,1FFDH +; OUT (C),A +; EX AF,AF' +; XOR A +;SR_CL_R1: +; LD BC,7FFDH +; OUT (C),A +; LD HL,0C000H +; LD DE,0C001H +; LD BC,03FFFH +; LD (HL),L +; LDIR +; INC A +; CP 48H +; JR NZ,SR_CL_R1 +; EX AF,AF' +; CP 0 +; JP Z,BASIC_128 ; выход на сброс BASIC 128 +; LD A,0 +; JR SR_CL_R2 + +;***************************** +; *** MENU IS-DOS *** +;***************************** + +ISDOS: + LD HL,IS_TAB + LD DE,IS_MENU + LD BC,IS_MENU.Size + PUSH HL + CALL RUN_MENU + POP HL + CALL EXEC_PNT + JR ISDOS + +IS_TAB: +; DW TR_DOS +; DW SP_DOS + DW SPRINTER_1X + DW AY8910_X + DW PENTAGON + DW SCORPION + DW PENTAGON512 + DW SPRINTER_reset ;SPRINTER_2X + DW RET_FROM_M + +; DC - every last character of a string will have bit 7 set +IS_MENU: + BYTE 8 ; количество пунктов + BYTE 'Hardware',#FF ; заголовок меню + DC 'Sprinter ZX ' + DC 'ZX Spectrum' + DC 'Pentagon 128' + DC 'Scorpion 256' + DC 'Pentagon 512' + DC 'Restart ' + DC 'RETURN' + DC " " ; маркер конца +.Size EQU $-IS_MENU + +;****************************** +;SP_DOS: +; LD B,0E2H +; LD A,0E1H +; JR TR_DOS1 +;TR_DOS: +; LD B,0EAH +; LD A,0E1H +;TR_DOS1: +; CALL DOS_ON +; CALL SET_ROM_PAGES +; CALL DOS_OFF +; RET +;****************************** + + +;************************************************** +;Sprinter ZX +SPRINTER_1X: + CALL _SET_CNF + LD C,BIOS.RST_CONF.SP97_1 + RST_to_BIOS + CALL CNF_PN_320 + LD L,2 ;FN_SYNC.INT_PENT + JR 1F ;!FIXIT метку придумать +; +;ZX Spectrum +AY8910_X: + CALL _SET_CNF + LD C,BIOS.RST_CONF.AY8910 + RST_to_BIOS + + LD A,#FA ; no ACC, Original waits + LD (Port_All_Mode),A + + CALL CNF_SC_312 + LD L,3 ;FN_SYNC.INT_ORIG +1: LD DE,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON + CALL CONFIG_SET + CALL CLS ;!FIXIT нужно ли? + RET +; + +SCORPION: + CALL _SET_CNF + CALL CNF_SC_312 + LD L,1 ;FN_SYNC.INT_SCORP + LD DE,CNF_PORT.CNF_1 + CNF_PORT.TURBO.ON + JR CONFIG_SET + +PENTAGON: + CALL _SET_CNF + CALL CNF_PN_320 + LD L,2 ;FN_SYNC.INT_PENT + LD DE,CNF_PORT.CNF_2 + CNF_PORT.TURBO.ON + JR CONFIG_SET + +PENTAGON512: + CALL _SET_CNF + CALL CNF_PN_320 + LD L,2 ;FN_SYNC.INT_PENT + LD DE,CNF_PORT.CNF_2 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_512 +; JR CONFIG_SET +CONFIG_SET: + PUSH DE + + EI + HALT + DI + + IN A,(SLOT3) + EX AF,AF' + LD A,SYS_PAGE + OUT (SLOT3),A + LD (SYS_PAGE.CONFIG_DE),DE + ;!FIXIT есть ли смысл делать до FN_SYNC? + LD A,(ZX_VARS.BORDER) + RRCA + RRCA + RRCA + AND 7 + OUT (BorderColor),A + ; + EX AF,AF' + OUT (SLOT3),A + + LD A,L + LD C,BIOS.FN_SYNC + RST_to_BIOS + + LD HL,#4104 ;!HARDCODE + LD E,0 + LD BC,256*4 + BIOS.LP_OPEN_S ;!HARDCODE + RST_to_BIOS + + LD HL,#5104 ;!HARDCODE + LD E,0 + LD BC,256*4 + BIOS.LP_OPEN_S + RST_to_BIOS + + POP DE + LD A,E + OUT (SYS_PORT.ROM),A + + IM 1 + EI + RET + +SPRINTER_reset: + CALL _SET_CNF + LD BC,256*BIOS.REINIT.SOFT_RESET + BIOS.REINIT + JP_to_BIOS + +_SET_CNF: + DI + LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON + OUT (SYS_PORT.ROM),A + RET + +CNF_SC_312: + LD A,Port_VSYNC.SET_312L + OUT (Port_VSYNC),A + RET + +CNF_PN_320: + LD A,Port_VSYNC.SET_320L + OUT (Port_VSYNC),A + RET + +; LD A,CNF_0 +; OUT (SYS_PORT.ROM),A +; CALL DOS_OFF +; JP 0 + +;***************************** +; *** MENU UTILITES *** +;***************************** +;!FIXIT это запуск c:\disk.trd - не думаю, что это нужно, можно заменить +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 + ; + + JR C,DISK_UTILIT + + LD HL,C_DISK_C3 + CALL CALL_DOS1 + +UTIL_DISK: + XOR A + ;!TEST + LD C,BIOS.FreeMemRMD + RST_to_BIOS + ;CALL EMM_FN3 ;!!!!! через RST_to_BIOS EMM.FreeMemRMD + ; + + LD HL,C_DEMO6 + CALL CALL_DOS1 + + XOR A + ;!TEST + LD C,BIOS.GET_RAMD_ST + RST_to_BIOS + ;CALL GET_RAMD_ST + ; + + JR C,UTIL_DISK_L1 + JR Z,UTIL_DISK_L1 + + LD HL,C_DISK_C1 + CALL CALL_DOS1 + LD HL,C_DISK_C2 + CALL CALL_DOS1 + RET + +UTIL_DISK_L1: + LD A,(ZX_VARS.OPER_DISK) + INC A + CP 2 + JR Z,DISK_UTIL_RET + LD HL,C_DISK_C5 + CALL CALL_DOS1 + JR UTIL_DISK + +DISK_UTIL_RET: + LD HL,C_DISK_C6 + CALL CALL_DOS1 + RET + +DISK_UTILIT: + LD HL,C_DISK_C4 + CALL CALL_DOS1 + JR UTIL_DISK + +C_DEMO6: DB .Size, ZX_Token.rem, ':/disk.trd', 13,80 +.Size EQU $-C_DEMO6-1 + +;*************************************** + +;VERSION: DEFB 22,21,0 +; DEFB 16,2,"Expansion 3.02  1997 ELSY Co.",16,1,0FFh + +;********************************************** + +DOS_RUN: + LD HL,C_DISK_C1 + CALL CALL_DOS1 + + LD HL,C_DISK_C2 + CALL CALL_DOS1 + RET + +START_TRD: + LD HL,C_DISK_C + CALL CALL_DOS1 + LD HL,C_DISK_C0 + CALL CALL_DOS1 + LD HL,C_DISK_C3 + CALL CALL_DOS1 + RET + +C_DISK_C: DB .Size, ZX_Token.rem, ':', 13,80 +.Size EQU $-C_DISK_C-1 + +C_DISK_C0: DB .Size, ZX_Token.rem, ':/CLEAR E', 13,80 +.Size EQU $-C_DISK_C0-1 + +C_DISK_C1: DB .Size, ZX_Token.rem, ':/RMD E', 13,80 +.Size EQU $-C_DISK_C1-1 + +C_DISK_C2: DB .Size, ZX_Token.rem, ':RUN', 13,80 +.Size EQU $-C_DISK_C2-1 + +C_DISK_C3: DB .Size, ZX_Token.rem, ':/HDD', 13,80 +.Size EQU $-C_DISK_C3-1 + +C_DISK_C4: DB .Size, ZX_Token.rem, ':/FDD', 13,80 +.Size EQU $-C_DISK_C4-1 + +C_DISK_C5: DB .Size, ZX_Token.rem, ':/B:', 13,80 +.Size EQU $-C_DISK_C5-1 + +C_DISK_C6: DB .Size, ZX_Token.rem, ':/A:', 13,80 +.Size EQU $-C_DISK_C6-1 ; \ No newline at end of file diff --git a/src/bios/rom/ZX_MODE.ASM b/src/bios/rom/ZX_MODE.ASM new file mode 100644 index 0000000..f4748f5 --- /dev/null +++ b/src/bios/rom/ZX_MODE.ASM @@ -0,0 +1,395 @@ +;.PRINTX "Service." + +SERVICE: + //LD HL,SR_TAB + LD DE,SR_MENU + LD BC,SR_MENU.Size + //PUSH HL + CALL RUN_MENU ;09f3 + LD HL,SR_TAB + //POP HL + CALL EXEC_PNT + JR SERVICE + +SR_TAB: DW UTILIT + DW GOTO_TRDOS.m128 + DW GOTO_TRDOS.m48 + DW TURBO_OFF + DW TURBO_ON + DW CLEAR_RAM + DW RET_FROM_M + +; DC - every last character of a string will have bit 7 set +SR_MENU: + BYTE 8 ; количество пунктов + BYTE 'Options ',#FF ; заголовок меню + DC 'RUN disk.trd' + DC '128 TR-DOS' + DC '48 TR-DOS' + DC 'TURBO OFF ' + DC 'TURBO ON ' + DC 'Clear RAM' + DC 'RETURN' + DC " " ; маркер конца +.Size EQU $-SR_MENU + +;***************************** + +;SR_48R: +GOTO_TRDOS: +.m128: LD A,#10 + JR .RUN +;SR_48: +.m48: LD A,#30 ; Стопор на PORT_128 !!! +;SR_48A: +.RUN: LD BC,#7FFD + OUT (C),A + LD BC,0 ; НА 0 !! + PUSH BC + LD BC,#3D2F ; В DOS ! + PUSH BC + JP SW_ROM + +;******************************* +TURBO_OFF: + LD A,BIOS.FN_TURBO.OFF + LD C,BIOS.FN_TURBO + JP_to_BIOS +TURBO_ON: + LD A,BIOS.FN_TURBO.ON + LD C,BIOS.FN_TURBO + JP_to_BIOS + +;******************************* + +CLEAR_RAM: + DI + LD C,BIOS.FullInit + RST_to_BIOS + ; при очистке памяти из меню спектрума возврат в DSS по CAD + ; будет опасным (RAM Blocks освободились), + ; поэтому отключаем перехват ресета. + ;!TODO придумать как отключать перехват только на возврат в DSS + LD A,ACEX.RET_PORT + LD BC,BIOS.SET_PORTS + CALL ToBIOS_3D13 + EI + RET + +;SR_CL_MEM: +; DI +; LD A,10H +;SR_CL_R2: +; LD BC,1FFDH +; OUT (C),A +; EX AF,AF' +; XOR A +;SR_CL_R1: +; LD BC,7FFDH +; OUT (C),A +; LD HL,0C000H +; LD DE,0C001H +; LD BC,03FFFH +; LD (HL),L +; LDIR +; INC A +; CP 48H +; JR NZ,SR_CL_R1 +; EX AF,AF' +; CP 0 +; JP Z,BASIC_128 ; выход на сброс BASIC 128 +; LD A,0 +; JR SR_CL_R2 + +;***************************** +; *** MENU IS-DOS *** +;***************************** + +ISDOS: + LD HL,IS_TAB + LD DE,IS_MENU + LD BC,IS_MENU.Size + PUSH HL + CALL RUN_MENU + POP HL + CALL EXEC_PNT + JR ISDOS + +IS_TAB: +; DW TR_DOS +; DW SP_DOS + DW SPRINTER_1X + DW AY8910_X + DW PENTAGON + DW SCORPION + DW PENTAGON512 + DW SPRINTER_reset ;SPRINTER_2X + DW RET_FROM_M + +; DC - every last character of a string will have bit 7 set +IS_MENU: + BYTE 8 ; количество пунктов + BYTE 'Hardware',#FF ; заголовок меню + DC 'Sprinter ZX ' + DC 'ZX Spectrum' + DC 'Pentagon 128' + DC 'Scorpion 256' + DC 'Pentagon 512' + DC 'Restart ' + DC 'RETURN' + DC " " ; маркер конца +.Size EQU $-IS_MENU + +;****************************** +;SP_DOS: +; LD B,0E2H +; LD A,0E1H +; JR TR_DOS1 +;TR_DOS: +; LD B,0EAH +; LD A,0E1H +;TR_DOS1: +; CALL DOS_ON +; CALL SET_ROM_PAGES +; CALL DOS_OFF +; RET +;****************************** + + +;************************************************** +;Sprinter ZX +SPRINTER_1X: + CALL _SET_CNF + LD C,BIOS.RST_CONF.SP97_1 + RST_to_BIOS + CALL CNF_PN_320 + LD L,2 ;FN_SYNC.INT_PENT + JR 1F ;!FIXIT метку придумать +; +;ZX Spectrum +AY8910_X: + CALL _SET_CNF + LD C,BIOS.RST_CONF.AY8910 + RST_to_BIOS + + LD A,#FA ; no ACC, Original waits + LD (Port_All_Mode),A + + CALL CNF_SC_312 + LD L,3 ;FN_SYNC.INT_ORIG +1: LD DE,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON + CALL CONFIG_SET + CALL CLS ;!FIXIT нужно ли? + RET +; + +SCORPION: + CALL _SET_CNF + CALL CNF_SC_312 + LD L,1 ;FN_SYNC.INT_SCORP + LD DE,CNF_PORT.CNF_1 + CNF_PORT.TURBO.ON + JR CONFIG_SET + +PENTAGON: + CALL _SET_CNF + CALL CNF_PN_320 + LD L,2 ;FN_SYNC.INT_PENT + LD DE,CNF_PORT.CNF_2 + CNF_PORT.TURBO.ON + JR CONFIG_SET + +PENTAGON512: + CALL _SET_CNF + CALL CNF_PN_320 + LD L,2 ;FN_SYNC.INT_PENT + LD DE,CNF_PORT.CNF_2 + CNF_PORT.TURBO.ON + CNF_PORT.CNF_512 +; JR CONFIG_SET +CONFIG_SET: + PUSH DE + + EI + HALT + DI + + IN A,(SLOT3) + EX AF,AF' + LD A,SYS_PAGE + OUT (SLOT3),A + LD (SYS_PAGE.CONFIG_DE),DE + ;!FIXIT есть ли смысл делать до FN_SYNC? + LD A,(ZX_VARS.BORDER) + RRCA + RRCA + RRCA + AND 7 + OUT (BorderColor),A + ; + EX AF,AF' + OUT (SLOT3),A + + LD A,L + LD C,BIOS.FN_SYNC + RST_to_BIOS + + LD HL,#4104 ;!HARDCODE + LD E,0 + LD BC,256*4 + BIOS.LP_OPEN_S ;!HARDCODE + RST_to_BIOS + + LD HL,#5104 ;!HARDCODE + LD E,0 + LD BC,256*4 + BIOS.LP_OPEN_S + RST_to_BIOS + + POP DE + LD A,E + OUT (SYS_PORT.ROM),A + + IM 1 + EI + RET + +SPRINTER_reset: + CALL _SET_CNF + LD BC,256*BIOS.REINIT.SOFT_RESET + BIOS.REINIT + JP_to_BIOS + +_SET_CNF: + DI + LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON + OUT (SYS_PORT.ROM),A + RET + +CNF_SC_312: + LD A,Port_VSYNC.SET_312L + OUT (Port_VSYNC),A + RET + +CNF_PN_320: + LD A,Port_VSYNC.SET_320L + OUT (Port_VSYNC),A + RET + +; LD A,CNF_0 +; OUT (SYS_PORT.ROM),A +; CALL DOS_OFF +; JP 0 + +;***************************** +; *** MENU UTILITES *** +;***************************** +;!FIXIT это запуск c:\disk.trd - не думаю, что это нужно, можно заменить +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 + ; + + JR C,DISK_UTILIT + + LD HL,C_DISK_C3 + CALL CALL_DOS1 + +UTIL_DISK: + XOR A + ;!TEST + LD C,BIOS.FreeMemRMD + RST_to_BIOS + ;CALL EMM_FN3 ;!!!!! через RST_to_BIOS EMM.FreeMemRMD + ; + + LD HL,C_DEMO6 + CALL CALL_DOS1 + + XOR A + ;!TEST + LD C,BIOS.GET_RAMD_ST + RST_to_BIOS + ;CALL GET_RAMD_ST + ; + + JR C,UTIL_DISK_L1 + JR Z,UTIL_DISK_L1 + + LD HL,C_DISK_C1 + CALL CALL_DOS1 + LD HL,C_DISK_C2 + CALL CALL_DOS1 + RET + +UTIL_DISK_L1: + LD A,(ZX_VARS.OPER_DISK) + INC A + CP 2 + JR Z,DISK_UTIL_RET + LD HL,C_DISK_C5 + CALL CALL_DOS1 + JR UTIL_DISK + +DISK_UTIL_RET: + LD HL,C_DISK_C6 + CALL CALL_DOS1 + RET + +DISK_UTILIT: + LD HL,C_DISK_C4 + CALL CALL_DOS1 + JR UTIL_DISK + +C_DEMO6: DB .Size, ZX_Token.rem, ':/disk.trd', 13,80 +.Size EQU $-C_DEMO6-1 + +;*************************************** + +;VERSION: DEFB 22,21,0 +; DEFB 16,2,"Expansion 3.02  1997 ELSY Co.",16,1,0FFh + +;********************************************** + +DOS_RUN: + LD HL,C_DISK_C1 + CALL CALL_DOS1 + + LD HL,C_DISK_C2 + CALL CALL_DOS1 + RET + +START_TRD: + LD HL,C_DISK_C + CALL CALL_DOS1 + LD HL,C_DISK_C0 + CALL CALL_DOS1 + LD HL,C_DISK_C3 + CALL CALL_DOS1 + RET + +C_DISK_C: DB .Size, ZX_Token.rem, ':', 13,80 +.Size EQU $-C_DISK_C-1 + +C_DISK_C0: DB .Size, ZX_Token.rem, ':/CLEAR E', 13,80 +.Size EQU $-C_DISK_C0-1 + +C_DISK_C1: DB .Size, ZX_Token.rem, ':/RMD E', 13,80 +.Size EQU $-C_DISK_C1-1 + +C_DISK_C2: DB .Size, ZX_Token.rem, ':RUN', 13,80 +.Size EQU $-C_DISK_C2-1 + +C_DISK_C3: DB .Size, ZX_Token.rem, ':/HDD', 13,80 +.Size EQU $-C_DISK_C3-1 + +C_DISK_C4: DB .Size, ZX_Token.rem, ':/FDD', 13,80 +.Size EQU $-C_DISK_C4-1 + +C_DISK_C5: DB .Size, ZX_Token.rem, ':/B:', 13,80 +.Size EQU $-C_DISK_C5-1 + +C_DISK_C6: DB .Size, ZX_Token.rem, ':/A:', 13,80 +.Size EQU $-C_DISK_C6-1 +; \ No newline at end of file diff --git a/src/bios/shared/CompMacro.asm b/src/bios/shared/CompMacro.asm index dffa857..de1d242 100644 --- a/src/bios/shared/CompMacro.asm +++ b/src/bios/shared/CompMacro.asm @@ -62,8 +62,6 @@ DEC A LD (RECOVERYstart.RDkey),A PUSH BC - ;LD BC,ROM_DISK.Pages.Size * 256 + BIOS.GetMemRMD - ;RST_to_BIOS LD B,ROM_DISK.Pages.Size CALL EMM.GetMemRMD POP BC @@ -82,9 +80,7 @@ IF vers = 1 ; Более быстрый, но захардкоженный вариант LD HL,TEMP - ;LD C,BIOS.GetMemBlkPages - ;RST_to_BIOS ; кидаем в буфер номера страниц RAM disk - CALL EMM.GetMemBlkPages + CALL EMM.GetMemBlkPages ; кидаем в буфер номера страниц RAM disk IN A,(SLOT3) LD (.slot3save),A @@ -142,9 +138,7 @@ LD A,#46 ;чтение из ROM-Disk EX AF,AF' LD HL,TEMP ;адрес буфера данных - ;LD BC,2*256 + BIOS.BLK_RD_WR ;число секторов и номер функции - ;RST_to_BIOS - LD B,2 + LD B,2 ;число секторов CALL BLK_RD_WR ;write to ram disk @@ -157,8 +151,6 @@ LD A,#FF ;запись в RAM-Disk EX AF,AF' LD HL,TEMP ;адрес буфера данных - ;LD BC,2*256 + BIOS.BLK_RD_WR ;число секторов и номер функции - ;RST_to_BIOS LD B,2 ;число секторов CALL BLK_RD_WR @@ -193,3 +185,9 @@ ENDIF ENDM ; + +; +; MACRO + +; ENDM +; \ No newline at end of file diff --git a/src/bios/shared/DEFINES.INC b/src/bios/shared/DEFINES.INC index 4e048b8..fe0aa65 100644 --- a/src/bios/shared/DEFINES.INC +++ b/src/bios/shared/DEFINES.INC @@ -4,7 +4,7 @@ DEFINE NEW_FEATURE 0;| /\ ; !TODO пункты в сетап DEFINE SET_NEWdcp 1;| \/ \/ ; !FIXIT тест нового dcp_init, пока не готова таблица портов DEFINE PACKED_MAIN 0;| | ; паковать MAIN или влезает без этого? - DEFINE SetFullZXromLoader 0;| ; добавлять в прошивку и грузить все ROM спектрума или часть? + DEFINE SP2000_ConfID #FEFF;| ; DEFINE IDE_Optimization 1;| ; слегка оптимизирует некоторые процедуры работы с HDD DEFINE NeedSafePort_Y 1;| ============== ; !!!!! если 0, то в режиме sp-спектрума некоторые процедуры могут засрать экран DEFINE Pashalki 0; \__________________/\ @@ -13,10 +13,6 @@ DEFINE RECOVERYrdChooseTYPE 1 ; 1 - RECOVERY всегда грузится в диск 15, 2 - ищется свободный рамдиск и если такого нет, то занимается 15ый DEFINE RECOVERYmountTYPE 1 ; 1 - быстрый немного захардкоженый вариант. 2 - более "правильный" - DEFINE SP2000_ConfID #FEFF - - DEFINE BIOS_ZXMODE 1 - ; Задержка в кадрах после отрисовки логотипа (0 = 256) DEFINE LOGO_DELAY_MIN 25 DEFINE LOGO_DELAY_NORM 100 diff --git a/src/doc/changes.txt b/src/doc/changes.txt index 20e4e05..f9c325b 100644 --- a/src/doc/changes.txt +++ b/src/doc/changes.txt @@ -1,41 +1,51 @@ -!TODO -- / Сделать EXP нового биоса совместимым с режимом спектрума, тогда освободится 1 страница в ПЗУ -- -| Адаптировать под новый совместимый EXP спектрумовские ПЗУ, тогда грузить на 1 страницу меньше -- \ получится, что EXP которое сейчас на месте расширенного Виртуального ПЗУ будет в ПЗУ????? -- Сжать хрустом ПЗУ спектрума и Логотип, ещё 1-2 страницы освободятся +TODO: +- пункт в сетапе "сохранять страницы спектрума при перезагрузке" +- перед инициализацией страниц спектрума и страницы 41 проверять, не заняты ли они рамдиском +- Сжать хрустом ПЗУ спектрума и Логотип, ещё 1 страница может освободиться - в сетап для сохранения ручных настроек HDD не те ячейки CMOS -- баг в режиме спектрума при выборе Clear RAM в меню и последующим выходом в ДОС по CAD - зависает, потому что вызывается процедура FullInit для очистки - чистить буфер клавы не втупую, а какими-нибудь командами для этих всяких SIO/PIO, если есть --+ ! в Setup добавлен пункт настройки времени и даты +-+ ! в Setup добавить пункт настройки времени и даты +-+ немного доработана система перехвата ресета для устранения некоторых глюков и на будущее -+ исправлен баг со стеком в BLK_TO_RAMD и ещё несколько багов в процедурах чтения с РАМ-ДИСКА -+ теперь зарезервированные под режим спектрума страницы можно легко освободить, номер блока - 1 -+ активирован второй канал IDE -+ нумерация устройств IDE переделана с последовательной на физическую -+ выбор загрузочного IDE изменён с последовательного на физический -+ добавлена возможность установки IDE со второго канала в качестве основного и альтернативного загрузочного диска -+ сделан универсальный загрузчик битстрима для 1k30 и 1k50 -+ немного доработана система перехвата ресета для устранения некоторых глюков и на будущее -+ убрано залипание клавиш при ресете по Ctrl+Alt+Del -+ при некорректных значениях даты и времени в CMOS данные заменяются на дефолтные значения, выводится сообщение об ошибке -+ в Setup добавлен выбор режима развёртки (--------/Scorpion/Pentagon/Spectrum) -+ в Setup добавлен выбор вертикальной синхронизации (--------/312 50Гц/320 49Гц) -+ добавлена загрузка RECOVERY с ROM-Disk в ПЗУ -+ добавлена загрузка системы с RAM Disk -+ при холодном старте устанавливается инт пентагона (а не скорпиона), если в CMOS не задано иное +Done: ++ Сделан универсальный загрузчик битстрима для 1k30 и 1k50 ++ Активирован второй канал IDE ++ Нумерация устройств IDE переделана с последовательной на физическую ++ Выбор загрузочного IDE изменён с последовательного на физический ++ Добавлена возможность установки IDE со второго канала в качестве основного и альтернативного загрузочного диска ++ Убрано залипание клавиш при ресете по Ctrl+Alt+Del ++ При некорректных значениях даты и времени в CMOS данные заменяются на дефолтные значения, выводится сообщение об ошибке ++ В Setup добавлен выбор режима развёртки (--------/Scorpion/Pentagon/Spectrum) ++ В Setup добавлен выбор вертикальной синхронизации (--------/312 50Гц/320 49Гц) ++ Добавлена загрузка системы с RAM Disk ++ Исправлен баг со стеком в BLK_TO_RAMD и ещё несколько багов в процедурах чтения с РАМ-ДИСКА ++ Добавлена загрузка RECOVERY с ROM-Disk в ПЗУ ++ При холодном старте устанавливается инт пентагона (а не скорпиона), если в CMOS не задано иное + Функция БИОС FN_SINC (#F2) при удачном завершении не сбрасывала флаг CF на выходе - исправлено -+ новая функция GET_RAMD_NUM -+ добавленые дополнительные опции в функцию БИОС FN_SINC (#F2), bit7 регистра A теперь отвечает за переключение старого/нового варианта работы функции (для сохранения совместимости со старыми программами) -+ добавлены образы ПЗУ ZX-Sprinter для запуска режима спектрума без загрузки DSS -+ новое лого при старте, разрешение изменено с 256х64 16 цветов на 128х72 256 цветов -+ изменена процедура вывода логотипа, логотип перенесён в другую страницу ПЗУ -+ смена языка, развёртки и инта происходит в Setup сразу -+ поправлен маловероятный, но возможный глюк с переполнением стека при входе-выходе из SETUP -+ поправлены буферы, оптимизированы некоторые процедуры, освобождено ббольше 1,5 кб ОЗУ для работы BIOS во время старта -+ изменены некоторые надписи и поправлена структура SETUP -+ найдено несколько древних мелких огрехов copy/paste, при работе было незаметно, но приятно, что нашлись -+ доделана функция FN_RESET -+ постепенный рефакторинг кода))) ++ Новая функция GET_RAMD_NUM ++ Добавленые дополнительные опции в функцию БИОС FN_SINC (#F2), bit7 регистра A теперь отвечает за переключение старого/нового + варианта работы функции (для сохранения совместимости со старыми программами) ++ Новое лого при старте, разрешение изменено с 256х64 16 цветов на 128х72 256 цветов ++ Изменена процедура вывода логотипа, логотип перенесён в другую страницу ПЗУ ++ Смена языка, развёртки и инта происходит в Setup сразу ++ Изменены некоторые надписи и поправлена структура SETUP ++ Доделана функция FN_RESET ++ Доделана функция DCP_CONFIG - функция управления дешифратором портов ++ Убрано задвоение функций 4х ++ Функции 5х перенесены из 0 в 8 страницу ПЗУ ++ Изменена функция инициализации DCP, освободилось около 4,5 кб ++ Теперь зарезервированные под режим спектрума страницы можно легко освободить, номер блока - 1 ++ Добавлены образы ПЗУ ZX-Sprinter для запуска режима спектрума без загрузки DSS ++ Страница BIOS совместима с адаптированными образами ПЗУ спектрума. Теперь отдельные страницы оригинальных SP_EXP и SP_EXP2 + не требуются. ++ Исправлен баг в режиме спектрума. При выборе Clear RAM в меню и последующим выходом в ДОС по CAD зависало, + потому что вызывалась процедура FullInit для очистки памяти. Теперь вместе с очисткой памяти сбрасывается перехват ресета ++ Поправлены буферы, оптимизированы некоторые процедуры, освобождено ббольше 1,5 кб ОЗУ для работы BIOS во время старта ++ Найдено несколько древних мелких огрехов copy/paste, при работе было незаметно, но приятно, что нашлись ++ Поправлен маловероятный, но возможный глюк с переполнением стека при входе-выходе из SETUP ++ Постепенный рефакторинг кода))) ++ Всего и не вспомнить уже... +==================================================================================================================================================================================================================== Новое описание функции БИОС FN_SINC (#F2) LD A,sync_mode ; режим синхронизации @@ -106,6 +116,7 @@ FN_RESET: ; ; старая версия BIOS ; + Новое описание функции GET_RAMD_NUM (#9B) GET_RAMD_NUM: ; получить номер RAM-Disk-а (0..15) по его block id LD A,id_blk ; идентификатор блока @@ -114,6 +125,7 @@ GET_RAMD_NUM: ; ; CF -> ошибка в идентификаторе блока или биос ниже 2.55 ; + Новое описание функции БИОС BLK_RD_WR (#C8) BLK_RD_WR: ; чтение/запись из/в блок(а) памяти секторами ; по 256 байт @@ -133,3 +145,12 @@ s_lines312 equ 7 s_wait_orig equ #18 s_wait_def equ #10 + +DCP_CONFIG: ; [x] функция управления дешифратором портов. + ;A - если ноль, то вызов функции переинициализации портов PORTS_INIT + ;HL - адрес + ;DE - маска - 0 изменяемые биты, 1 неизменяемые + ;B - порт + ;C - #F4 номер функции +; !FIXIT Функция позволяет открывать/закрывать дополнительные порты компьютера. +; \ No newline at end of file From 543a2533f9e2c1283c0ad4b175d7c13a1853548e Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Sun, 25 Jun 2023 05:25:18 +1000 Subject: [PATCH 010/267] ... --- Shared_Includes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Shared_Includes b/Shared_Includes index 81f727c..c821d32 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 81f727ca6ecd8fcaaac4f4e573fe1fd6578c1efa +Subproject commit c821d325066267e711886212aa3dfc4b83f5b64f From 346d6e7cb859c8d5a569b5c60ad4ccfbbe60ace5 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Mon, 26 Jun 2023 02:54:22 +1000 Subject: [PATCH 011/267] shared update --- Shared_Includes | 2 +- src/bios/rom/ZX_MODE.ASM | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index c821d32..fc7af6f 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit c821d325066267e711886212aa3dfc4b83f5b64f +Subproject commit fc7af6fc40d61e9f8e626b39a8423d29a955afb2 diff --git a/src/bios/rom/ZX_MODE.ASM b/src/bios/rom/ZX_MODE.ASM index f4748f5..6c0bbe4 100644 --- a/src/bios/rom/ZX_MODE.ASM +++ b/src/bios/rom/ZX_MODE.ASM @@ -1,13 +1,10 @@ ;.PRINTX "Service." SERVICE: - //LD HL,SR_TAB LD DE,SR_MENU LD BC,SR_MENU.Size - //PUSH HL CALL RUN_MENU ;09f3 - LD HL,SR_TAB - //POP HL + LD HL,SR_TAB CALL EXEC_PNT JR SERVICE From 0af03f6dc47228362fa65d1139d10a2001afbe38 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Tue, 27 Jun 2023 01:28:35 +1000 Subject: [PATCH 012/267] new recovery.img --- src/bios/make_bios.cmd | 71 -------------------------------------- src/bios/test2.cmd | 15 -------- src/build_firmware.cmd | 78 ------------------------------------------ src/make_firmware.cmd | 19 ---------- 4 files changed, 183 deletions(-) delete mode 100644 src/bios/make_bios.cmd delete mode 100644 src/bios/test2.cmd delete mode 100644 src/build_firmware.cmd delete mode 100644 src/make_firmware.cmd diff --git a/src/bios/make_bios.cmd b/src/bios/make_bios.cmd deleted file mode 100644 index 71c4bba..0000000 --- a/src/bios/make_bios.cmd +++ /dev/null @@ -1,71 +0,0 @@ -@if [%1]==[] (set NO_STOP="0") else (set NO_STOP="%1") -@if %NO_STOP% == "5" (goto all) -@set cur_STEP=0 -@set BIOS_DIR=%cd%\src\bios -@set BIN=%BIOS_DIR%\..\bin -@set BUILD=%BIOS_DIR%\..\..\Build -@set RAW=%BUILD%\Bin -@set error_level="0" - - -@goto start_tasks - -:all -@__make_all_.cmd - -:start_tasks -@echo -------------------------------------------------------[BIOS START] -@echo STEP [1/2], Compiling ROM, EXP, Loader -@set main_file=BIOS -@sjasmplus.exe -Wall --msg=war --nologo --syntax=w --fullpath --color=on --lst=%BUILD%\BIOS.LST %BIOS_DIR%\BIOS.ASM -@if errorlevel 1 (call :error_handler) else (echo [OK ]) -@echo -------------------------------------------------------[BIOS DONE] -@echo. - -@echo -------------------------------------------------------[LOGO START] -@set LOGO_FILE=psfathers.bmp -@echo STEP [2/2], Extracting data for LOGO from BMP -@set main_file=Logo -@echo. -@%BIN%\bmp_extract.exe %BIOS_DIR%\logo\%LOGO_FILE% /pn %RAW%\LOGO_PAL.BIN /dn %RAW%\LOGO_DAT.BIN /pt 4 -@if errorlevel 1 (call :error_handler) else (echo [OK ]) -@set /a "cur_STEP=cur_STEP+1" -@echo -------------------------------------------------------[LOGO DONE] -@echo. - -@if %error_level% == "1" (goto end_task_err) else (goto end_task_ok) - -:error_handler -@color 04 -@if %NO_STOP% == "1" (goto next) else (goto err_stop) - -:next -@echo [ERR] -@set error_level="1" -@echo ---------------------------------------------------------------------[ERROR in %main_file% on STEP %cur_STEP%] -@goto :eof - -:err_stop -@echo ---------------------------------------------------------------------[ERROR in %main_file% on STEP %cur_STEP%] -@cd %BIOS_DIR% -@IF NOT (%NO_STOP% == "1") pause 0 -@color -@exit 3 - -:end_task_err -@echo ---------------------------------------------------------------------[Make firmware ERROR!!!] -@echo. -@cd %BIOS_DIR% -@echo %NO_STOP% -@IF %NO_STOP% == "3" pause 0 -@IF %NO_STOP% == "0" pause 0 -@color -@exit 3 - - -:end_task_ok -@echo --------------------------------------------------------------------------[Make firmware DONE] -@echo. -@cd %BIOS_DIR% -@echo on -@IF (%NO_STOP% == "0") pause 0 diff --git a/src/bios/test2.cmd b/src/bios/test2.cmd deleted file mode 100644 index 8e6fe81..0000000 --- a/src/bios/test2.cmd +++ /dev/null @@ -1,15 +0,0 @@ -@set variable=0 -@set main_file=0 -@setlocal disabledelayedexpansion -@set test=set variable=!main_file! - -@call :testing trtrt -@goto :eof - -:testing -@setlocal enabledelayedexpansion -@set main_file=%1 -@%test% -@setlocal disabledelayedexpansion -@echo %variable% -@goto :eof diff --git a/src/build_firmware.cmd b/src/build_firmware.cmd deleted file mode 100644 index 3c90b5f..0000000 --- a/src/build_firmware.cmd +++ /dev/null @@ -1,78 +0,0 @@ -@echo ------------------------------------------------------------[Build firmware start] -@if [%1]==[] (set NO_STOP="0") else (set NO_STOP=%1) -@if [%error_level%]==[] (set error_level="0") -@if %error_level% == "1" goto error -@set BIN=..\..\src\bin -@set ROMS=..\..\src\ZX_ROMS -@set BITSTREAM=..\..\src\altera\acex - -@cd ..\Build\Bin - -@if not exist ROM.BIN goto error_roms -@if not exist EXP.BIN goto error_roms -@if not exist LOADER_K30.BIN goto error_roms -@if not exist LOADER_K50.BIN goto error_roms - -@if not exist LOGO_PAL.BIN goto error_logo -@if not exist LOGO_DAT.BIN goto error_logo - -@if not exist %ROMS%\SP_128.BIN goto error_zxroms -@if not exist %ROMS%\SP__48.BIN goto error_zxroms -@if not exist %ROMS%\SP_TRD.BIN goto error_zxroms -@if not exist %ROMS%\SP_EXP.BIN goto error_zxroms -@if not exist %ROMS%\SP_EXP2.BIN goto error_zxroms - -@set FW=..\_SPRIN.BIN -@set LOADER=LOADER_K30.BIN -@call :make_rom_file -@set FW=..\_SPRIN50.BIN -@set LOADER=LOADER_K50.BIN -@call :make_rom_file -@goto quit - -:make_rom_file -@%BIN%\disk3.exe %FW% NUL 0H,40000H,0 -@%BIN%\disk3.exe %FW% ROM.BIN 0000H,4000H,0H -@%BIN%\disk3.exe %FW% LOGO_PAL.BIN 4000H,400H,0H -@%BIN%\disk3.exe %FW% LOGO_DAT.BIN 4400H,2400H -@%BIN%\disk3.exe %FW% %ROMS%\SP_128.BIN 8000H,4000H,0H -@%BIN%\disk3.exe %FW% %ROMS%\SP__48.BIN C000H,4000H,0H -@%BIN%\disk3.exe %FW% %ROMS%\SP_TRD.BIN 10000H,4000H,0H -@%BIN%\disk3.exe %FW% %ROMS%\SP_EXP.BIN 14000H,4000H,0H -@%BIN%\disk3.exe %FW% %ROMS%\SP_EXP.BIN 18000H,4000H,0H -@%BIN%\disk3.exe %FW% %ROMS%\SP_EXP2.BIN 1C000H,4000H,0H -@%BIN%\disk3.exe %FW% EXP.BIN 20000H,4000H,0H -@%BIN%\disk3.exe %FW% %LOADER% 30000H,4000H,0 -@goto :eof - -:error_roms -@echo. -@echo -------------------------------------------------------[ERROR during building firmware. ROM not found!] -@pause 0 -@exit 3 - -:error_logo -@echo. -@echo -------------------------------------------------------[ERROR during building firmware. LOGO not found!] -@pause 0 -@exit 3 - -:error_zxroms -@echo. -@echo -------------------------------------------------------[ERROR during building firmware. ZX-ROM not found!] -@pause 0 -@exit 3 - -:error -@echo. -@echo -------------------------------------------------------[ERROR during making firmware] -@pause 0 -@exit 3 - -:quit -@echo ------------------------------------------------------------[Build firmware done] -@echo. -@cd .. -@IF %NO_STOP% == "3" pause 0 -@IF %NO_STOP% == "0" pause 0 -@goto :eof diff --git a/src/make_firmware.cmd b/src/make_firmware.cmd deleted file mode 100644 index 2019faa..0000000 --- a/src/make_firmware.cmd +++ /dev/null @@ -1,19 +0,0 @@ -@echo ------------------------------------------------------------[Make firmware start] -@if [%1]==[] (set NO_STOP=0) else (set NO_STOP=%1) -@cd altera -@call make_altera.cmd - -@cd ..\.. -@call src\bios\make_bios.cmd %no_stop% -@if %error_level% == "0" goto exit - -:error -@echo. -@echo -------------------------------------------------------[ERROR during making firmware] -@pause 0 -@exit 3 - -:exit -@echo ------------------------------------------------------------[Make firmware done] -@echo. - From e8e15b65cb6327a4128f1f4bdb8659b265ab4793 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Tue, 27 Jun 2023 01:29:25 +1000 Subject: [PATCH 013/267] New recovery.img --- Shared_Includes | 2 +- src/bios/BUILD.a80 | 6 +++--- src/bios/shared/RECOVERY.IMG | Bin 81920 -> 98304 bytes 3 files changed, 4 insertions(+), 4 deletions(-) mode change 100644 => 100755 src/bios/shared/RECOVERY.IMG diff --git a/Shared_Includes b/Shared_Includes index fc7af6f..38c3f62 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit fc7af6fc40d61e9f8e626b39a8423d29a955afb2 +Subproject commit 38c3f62f6d7fa9f4c977eb23e3ff9ea7bf3638f0 diff --git a/src/bios/BUILD.a80 b/src/bios/BUILD.a80 index cb60f33..55e11a0 100644 --- a/src/bios/BUILD.a80 +++ b/src/bios/BUILD.a80 @@ -64,7 +64,7 @@ ; ;PAGE 5 Recovery image part 1 INCBIN IMG_RECOVERY,0,#C000 - DISPLAY "ROM Disk recovery part1, pages 5..7: #20000..#2C000" + DISPLAY "ROM Disk recovery part1, pages 5..7: 2x0000..2xC000" ; @@ -74,8 +74,8 @@ Set_Block 'EXP free space: ', #24000 ; ;PAGE 9-11 (#09, #0A, #0B) Recovery image part 2 - INCBIN IMG_RECOVERY,#C000,#8000 - DISPLAY "ROM Disk recovery part2, pages 9..10: #24000..#2C000" + INCBIN IMG_RECOVERY,#C000,#C000 + DISPLAY "ROM Disk recovery part2, pages 9..11: 2x4000..3x0000" Set_Block 'Empty space: ', #30000 ; diff --git a/src/bios/shared/RECOVERY.IMG b/src/bios/shared/RECOVERY.IMG old mode 100644 new mode 100755 index 046720bbb2fbb0248d5fe7b15fbf7bf0e80a43b3..035ebd4c7065806653042cbe4a93ff9424418079 GIT binary patch delta 8760 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 delta 848 zcmZo@U~6b#)qQO27x9-!BJr;Il<~R-3ZKWFVrGrQ4*Lf%20r+hn<41J&t)!_;YVBcCL@HN#vU z1_tNJ3xRAWhEf&=2DixvfoxX>F>MA0r^$&xb~J+^FG&0$ke$TvLl?wmHv9T4{6SrsMKEZ$@m2zp&5y<=Vr^O=sM?ton?y7u>A8 zZSuS2WbVVaR>EhabML*qz3Np}*sb#Um*xc=yvMo8^@!Bw*};CZBfG=1XRF4HuKrocy-&hy0ziEdb`rMR()T|Sz44h<-w+^qeB0eyqt0U_>6m! zzs@sn*PQb3c;e~1JgT=HdM>`7IB7}sij1v$gtxAJn7mB-#2kg&_ZV(CKMUWv?OF7O l`35uB?OV_MP3I)Tfz6B@HjL7Ys5t`7_fHr%3x0Ud3jm^GF>(L^ From 36e3be6eb0f03cffe95ce95bb97045649f3f1be2 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Wed, 28 Jun 2023 04:06:18 +1000 Subject: [PATCH 014/267] Doing interrupt sheme --- Shared_Includes | 2 +- src/bios/exp/EXP.asm | 194 ++++++++++++++++++++++++++++---- src/bios/exp/FUNC_CMOS.ASM | 2 +- src/bios/exp/FUNC_LOW_PRINT.ASM | 2 +- src/bios/exp/FUNC_SYS.ASM | 2 +- src/bios/rom/ROM.asm | 156 +++++++++++++++++-------- src/bios/shared/DEFINES.INC | 2 +- 7 files changed, 282 insertions(+), 78 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index 38c3f62..520455d 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 38c3f62f6d7fa9f4c977eb23e3ff9ea7bf3638f0 +Subproject commit 520455dbdc4c10f1850fd697aa5be4703d6cfd27 diff --git a/src/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index 5c6665e..7f108c5 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -71,6 +71,35 @@ RST_30: BLOCK #38-$,0 ; INTERUPT Point RST38: + IF TEST_INT + ;INT: + PUSH BC + PUSH AF + + LD C,SLOT3 + IN B,(C) + LD A,SYS_PAGE + OUT (C),A + + LD A,(SYS_PAGE.INT_ID) + CP #AA + JR Z,YESINT + OUT (C),B + JR NOINT +YESINT: PUSH HL + LD HL,(SYS_PAGE.INT_ADRESS) + LD A,H + OR L + LD A,(SYS_PAGE.INT_PAGE) + OUT (C),B + PUSH DE + CALL NZ,EXTINT + POP DE + POP HL +NOINT: POP AF + POP BC + ENDIF + EI RETI @@ -81,10 +110,11 @@ RST38: ;======================================= + IFN TEST_INT _mInfoALIGN #10,0 -;TABLE_X EQU #A0 ; any adress < #C0 with mask %xxxx0000 -; BLOCK TABLE_X-$ -TABLE_X: ; таблица для Sprinter POST-Tester-a +; any adress < #C0 with mask %xxxx0000 +; таблица для Sprinter POST-Tester-a +TABLE_X: .v0: DB 00101000b ; "0" .v1: DB 10111101b ; "1" .v2: DB 00110010b ; "2" @@ -101,7 +131,13 @@ TABLE_X: ; таб .vD: DB 10110000b ; "D" .vE: DB 01100010b ; "E" .vF: DB 01100011b ; "F" + ENDIF ;======================================= +; + +; +;======================================= + IFN TEST_INT RESTARTS EQU #FFE0 ; !FIXIT вынести в SP2000.inc GLOBAL_RESET: DI @@ -117,16 +153,15 @@ GLOBAL_RESET: INC DE DJNZ .compare JP RESTARTS + ENDIF ;======================================= _mInfoBLOCK #66-$,0 - NMI_Point: ; резерв 3 байта для команды JP ;NOP ;NOP ;NOP RETN - ;======================================= ;SET_BIOS_TO_RAM: ; программа работает на адресе 0C000h @@ -196,24 +231,56 @@ BoardID: ; BLOCK #100-$,0 -; RESTARTS EQU #FFE0 ; !FIXIT вынести в SP2000.inc -; GLOBAL_RESET: -; DI -; IM 1 -; LD HL,RESTARTS -; LD DE,RESTARTS_PROG -; LD B,RESTARTS_PROG.Size -; .compare: -; LD A,(DE) -; CP (HL) -; JR NZ,NO_RESTART -; INC HL -; INC DE -; DJNZ .compare -; JP RESTARTS - -;-----[перехват RESET не состоялся]----- +;======================================= + IF TEST_INT + _mInfoALIGN #10,0 +; any adress < #C0 with mask %xxxx0000 +; таблица для Sprinter POST-Tester-a +TABLE_X: ; таблица для Sprinter POST-Tester-a +.v0: DB 00101000b ; "0" +.v1: DB 10111101b ; "1" +.v2: DB 00110010b ; "2" +.v3: DB 00110100b ; "3" +.v4: DB 10100101b ; "4" +.v5: DB 01100100b ; "5" +.v6: DB 01100000b ; "6" +.v7: DB 00111101b ; "7" +.v8: DB 00100000b ; "8" +.v9: DB 00100100b ; "9" +.vA: DB 00100001b ; "A" +.vB: DB 11100000b ; "B" +.vC: DB 01101010b ; "C" +.vD: DB 10110000b ; "D" +.vE: DB 01100010b ; "E" +.vF: DB 01100011b ; "F" + ENDIF +;======================================= ; + +; +;======================================= + IF TEST_INT +RESTARTS EQU #FFE0 ; !FIXIT вынести в SP2000.inc +GLOBAL_RESET: + DI + IM 1 + LD HL,RESTARTS + LD DE,RESTARTS_PROG + LD B,RESTARTS_PROG.Size +.compare: + LD A,(DE) + CP (HL) + JR NZ,NO_RESTART + INC HL + INC DE + DJNZ .compare + JP RESTARTS + ENDIF +;======================================= +; + +; +;-----[перехват RESET не состоялся]----- NO_RESTART: ; стек ещё не используем!!! LD SP,IX ; сохранить значение переданное загрузчиком конфы (если старт после ресета) @@ -249,6 +316,87 @@ NO_RESTART: ; no boundary set! ; +;--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== + IF TEST_INT +;!FIXIT перенести в ROM.BIOS и сделать +; так, чтоб могла правильно прыгать в +; любые слоты и работать с DSS +;----------------[int]------------------ +EXTINT: OR A + RET Z + + ;LD C,SLOT1 + BIT 7,H + JR Z,.L2 + LD C,SLOT2 + BIT 6,H + JR Z,.L1 + LD C,SLOT3 + +.L1: IN B,(C) + PUSH BC + OUT (C),A + CALL .JPHL + POP BC + OUT (C),B + RET + ; проверка на нулевой слот +.L2: BIT 6,H + LD C,SLOT1 + JR NZ,.L1 ; продолжаем если ненулевой слот + + PUSH HL + + LD HL,-.stackDepth - .switchProcedure.size + .patch-2 + ADD HL,SP + PUSH HL + + LD HL,-.stackDepth - .switchProcedure.size ; memory stack use! + ADD HL,SP ; stack + PUSH HL ; адрес программы .readProcedure + + LD DE,.switchProcedure ; перенести программу на стек + EX DE,HL + LD BC,.switchProcedure.size + LDIR + RET + +; процедура, переносимая на стек для вызова прерывания пользователя из SLOT0 +; осторожнее с PUSH, если надо много, то увеличивай .stackDepth +.switchProcedure: + DEC DE + POP HL + LD (HL),E + INC HL + LD (HL),D + + LD C,SLOT0 + IN B,(C) + POP HL + PUSH BC + OUT (C),A + + XOR A + OUT (SYS_PORT.RAM),A + +.patch EQU $+1-.switchProcedure + CALL .JPHL + + DI + + XOR A + OUT (SYS_PORT.ROM),A + + POP BC + OUT (C),B + + RET +.JPHL: JP (HL) +.stackDepth EQU 32 ; расстояние от конца процедуры до вершины стека. +.switchProcedure.size EQU $-.switchProcedure + ENDIF +;--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== + ; ==== POST PROCs ================= MODULE POST_TEST @@ -938,7 +1086,7 @@ DCP_DATA: INCLUDE 'DCP.ASM' ; #::::::::::::::::::::::::::::::::::#\ ; ####################################\ ; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -ZG_ADRESS: INCLUDE 'FONT.ASM' +ZG_ADDRESS: INCLUDE 'FONT.ASM' ;-----------------------------------------------------------------------; diff --git a/src/bios/exp/FUNC_CMOS.ASM b/src/bios/exp/FUNC_CMOS.ASM index a783501..af1100e 100644 --- a/src/bios/exp/FUNC_CMOS.ASM +++ b/src/bios/exp/FUNC_CMOS.ASM @@ -36,7 +36,7 @@ CMOS_EMU_RD: LD E,SYS_PAGE OUT (C),E LD E,D - LD D,#FF + LD D, high SYS_PAGE.CMOS_EMULATOR LD A,(DE) OUT (C),B diff --git a/src/bios/exp/FUNC_LOW_PRINT.ASM b/src/bios/exp/FUNC_LOW_PRINT.ASM index d44b697..cfc0cb9 100644 --- a/src/bios/exp/FUNC_LOW_PRINT.ASM +++ b/src/bios/exp/FUNC_LOW_PRINT.ASM @@ -860,7 +860,7 @@ LP_BEG_P: ; program init registers ; for low printer & save WIN_GET_ZG: ; DE - адрес куда переслать фонт - LD HL,ZG_ADRESS + LD HL,ZG_ADDRESS LD BC,#0800 LDIR AND A diff --git a/src/bios/exp/FUNC_SYS.ASM b/src/bios/exp/FUNC_SYS.ASM index 6953d9e..a04cdb2 100644 --- a/src/bios/exp/FUNC_SYS.ASM +++ b/src/bios/exp/FUNC_SYS.ASM @@ -159,7 +159,7 @@ INIT_SYS_ALL: LD (HL),0 LDIR - LD DE,ZG_ADRESS ; адрес знакогенератора + LD DE,ZG_ADDRESS ; адрес знакогенератора LD (SYS_PAGE.WIN_ZG-#4000),DE ; ;-----------[new code start]------------ ; !!!!! посмотреть-причесать diff --git a/src/bios/rom/ROM.asm b/src/bios/rom/ROM.asm index 906bbdf..e3684b2 100644 --- a/src/bios/rom/ROM.asm +++ b/src/bios/rom/ROM.asm @@ -16,29 +16,29 @@ Check_Sum: ;!TODO прикрутить к ROM.BIOS ;----------------[int]------------------ BLOCK #38-$,#FF -INT: PUSH BC - PUSH AF +; INT: PUSH BC +; PUSH AF - LD C,SLOT3 - IN B,(C) - LD A,SYS_PAGE - OUT (C),A +; LD C,SLOT3 +; IN B,(C) +; LD A,SYS_PAGE +; OUT (C),A - LD A,(SYS_PAGE.INT_ID) - CP #AA - JR Z,YESINT - OUT (C),B - JR NOINT -YESINT: PUSH HL - LD HL,(SYS_PAGE.INT_ADRESS) - LD A,H - OR L - LD A,(SYS_PAGE.INT_PAGE) - OUT (C),B - CALL NZ,EXTINT - POP HL -NOINT: POP AF - POP BC +; LD A,(SYS_PAGE.INT_ID) +; CP #AA +; JR Z,YESINT +; OUT (C),B +; JR NOINT +; YESINT: PUSH HL +; LD HL,(SYS_PAGE.INT_ADRESS) +; LD A,H +; OR L +; LD A,(SYS_PAGE.INT_PAGE) +; OUT (C),B +; CALL NZ,EXTINT +; POP HL +; NOINT: POP AF +; POP BC EI RETI ;--------------------------------------- @@ -48,41 +48,97 @@ NOINT: POP AF NMI: RETN ;--------------------------------------- -;!FIXIT перенести в ROM.BIOS и сделать -; так, чтоб могла правильно прыгать в -; любые слоты и работать с DSS -;----------------[int]------------------ -EXTINT: OR A - RET Z +; ;!FIXIT перенести в ROM.BIOS и сделать +; ; так, чтоб могла правильно прыгать в +; ; любые слоты и работать с DSS +; ;----------------[int]------------------ +; EXTINT: OR A +; RET Z - ;LD C,SLOT1 - BIT 7,H - JR Z,.L2 - LD C,SLOT2 - BIT 6,H - JR Z,.L1 - LD C,SLOT3 +; ;LD C,SLOT1 +; BIT 7,H +; JR Z,.L2 +; LD C,SLOT2 +; BIT 6,H +; JR Z,.L1 +; LD C,SLOT3 -.L1: IN B,(C) - PUSH BC - OUT (C),A - CALL JPHL - POP BC - OUT (C),B - RET - ; проверка на нулевой слот -.L2: BIT 6,H - LD C,SLOT1 - JR NZ,.L1 ; продолжаем если ненулевой слот -; ВОТ ТУТ МОЖНО ВЛУПИТЬ ПРОЦЕДУРУ ДЛЯ ПОДСТАНОВКИ СТРАНИЦЫ В SLOT0 И -; ПЕРЕХОД ПО ПРЕРЫВАНИЮ В ОБРАБОТЧИК ПОЛЬЗОВАТЕЛЯ ЧЕРЕЗ процедуру на стэк, например - SCF - RET -JPHL: JP (HL) +; .L1: IN B,(C) +; PUSH BC +; OUT (C),A +; CALL .JPHL +; POP BC +; OUT (C),B +; RET +; ; проверка на нулевой слот +; .L2: BIT 6,H +; LD C,SLOT1 +; JR NZ,.L1 ; продолжаем если ненулевой слот +; ; ВОТ ТУТ МОЖНО ВЛУПИТЬ ПРОЦЕДУРУ ДЛЯ ПОДСТАНОВКИ СТРАНИЦЫ В SLOT0 И +; ; ПЕРЕХОД ПО ПРЕРЫВАНИЮ В ОБРАБОТЧИК ПОЛЬЗОВАТЕЛЯ ЧЕРЕЗ процедуру на стэк, например + + +; IF TEST_INT +; LD HL,-.stackDepth - .switchProcedure.size + .patch+2 +; ADD HL,SP +; PUSH HL + +; LD HL,-.stackDepth - .switchProcedure.size ; memory stack use! +; ADD HL,SP ; stack +; PUSH HL ; адрес программы .readProcedure + +; LD DE,.switchProcedure ; перенести программу на стек +; EX DE,HL +; LD BC,.switchProcedure.size +; LDIR +; RET + +; ; процедура, переносимая на стек для вызова прерывания пользователя из SLOT0 +; ; осторожнее с PUSH, если надо много, то увеличивай .stackDepth +; .switchProcedure: +; DEC DE +; POP HL +; LD (HL),E +; INC HL +; LD (HL),D + + +; LD C,SLOT0 +; IN B,(C) +; PUSH BC +; OUT (C),A + +; XOR A +; OUT (SYS_PORT.RAM),A +; .patch EQU $+1-.switchProcedure +; CALL .JPHL + +; DI + +; XOR A +; OUT (SYS_PORT.ROM),A + +; POP BC +; OUT (C),B + +; RET +; .JPHL: JP (HL) +; .stackDepth EQU 32 ; расстояние от конца процедуры до вершины стека. +; .switchProcedure.size EQU $-.switchProcedure +; ELSE + +; SCF +; RET +; .JPHL: JP (HL) +; ENDIF ;--------------------------------------- +/* + +*/ + ; ; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; diff --git a/src/bios/shared/DEFINES.INC b/src/bios/shared/DEFINES.INC index fe0aa65..7c0d7bb 100644 --- a/src/bios/shared/DEFINES.INC +++ b/src/bios/shared/DEFINES.INC @@ -2,7 +2,7 @@ ;---------[All shared defines]----------\/ \/ DEFINE DEBUG 1;| ; добавляет строку и сообщение о тестовой сборке на стартовом экране DEFINE NEW_FEATURE 0;| /\ ; !TODO пункты в сетап - DEFINE SET_NEWdcp 1;| \/ \/ ; !FIXIT тест нового dcp_init, пока не готова таблица портов + DEFINE TEST_INT 1;| \/ \/ ; Тестовый обработчик пользовательского INT DEFINE PACKED_MAIN 0;| | ; паковать MAIN или влезает без этого? DEFINE SP2000_ConfID #FEFF;| ; DEFINE IDE_Optimization 1;| ; слегка оптимизирует некоторые процедуры работы с HDD From a703f275c1f26b6d41bb5f229237f5e323aedfba Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Sat, 1 Jul 2023 04:42:48 +1000 Subject: [PATCH 015/267] Fixet bug with RECOVERY pages. New recovery.img CMOS bug fixes& --- src/bios/rom/SETUP/PITEM_OLD.as | 32 ---- src/bios/rom/SETUP/SETUP.AS | 35 ---- src/doc/ATA Command Table in OpCode Order.pdf | Bin 216319 -> 0 bytes .../ATA Command Table in OpCode Order.xlsx | Bin 23391 -> 0 bytes src/doc/ATA-ATAPI Command Set 3.pdf | Bin 2353786 -> 0 bytes src/doc/testing.txt | 166 ------------------ src/doc/xFFD.txt | 25 --- 7 files changed, 258 deletions(-) delete mode 100644 src/bios/rom/SETUP/PITEM_OLD.as delete mode 100644 src/bios/rom/SETUP/SETUP.AS delete mode 100644 src/doc/ATA Command Table in OpCode Order.pdf delete mode 100644 src/doc/ATA Command Table in OpCode Order.xlsx delete mode 100644 src/doc/ATA-ATAPI Command Set 3.pdf delete mode 100644 src/doc/testing.txt delete mode 100644 src/doc/xFFD.txt diff --git a/src/bios/rom/SETUP/PITEM_OLD.as b/src/bios/rom/SETUP/PITEM_OLD.as deleted file mode 100644 index 2e863fb..0000000 --- a/src/bios/rom/SETUP/PITEM_OLD.as +++ /dev/null @@ -1,32 +0,0 @@ -;--------------------------------------- -PITEM: -; HL - item's address - LD E,(HL) ; x-coordinate - INC HL - LD D,(HL) ; y-coordinate - INC HL ; address of next parametr - CALL LOCAT ; set position of item - CALL PRINTZ ; print item's name - LD A,(HL) ; address of next parametr - CALL READCMS ; read item`s value from cmos - INC HL - LD B,(HL) ; item's value mask - INC HL - INC HL - AND B -RRLP: - RRCA - RRC B - JR NC,RRLP - RLCA - OR A - JP Z,PRINTZ - LD B,A - XOR A -NIT: - LD C,#FF - CPIR - RET NZ - DJNZ NIT - JP PRINTZ -;--------------------------------------- \ No newline at end of file diff --git a/src/bios/rom/SETUP/SETUP.AS b/src/bios/rom/SETUP/SETUP.AS deleted file mode 100644 index 6e5931e..0000000 --- a/src/bios/rom/SETUP/SETUP.AS +++ /dev/null @@ -1,35 +0,0 @@ -; DEFINE MAX_END_ADDR #A2FF ;!!!!! привязка к адресу -; INCLUDE '../MEM_MAP.INC' - -; ORG #8000 - DB "SETUP" - JR JUMP - DB "(C) 2001 PETERS PLUS LTD " -JUMP: - DI - POP HL - LD SP,#7FFF - PUSH HL - PUSH AF - LD HL,#8000 ;!!!!!!!!!!hardcode - PUSH HL - LD DE,Depacker_start ; адрес процедуры депакера !!!!! - PUSH DE - LD HL,DEPAKER - LD BC,LENBLOK - LDIR - LD HL,PAKCODE ; где архив - LD DE,MAIN_Unpacked_Start ; куда распаковывать - RET - -DEPAKER: -; INCBIN 'Build/Bin/DEPACK.BIN' - DISP Depacker_start - INCLUDE 'src/bios/ROM/SETUP/DEPACK.ASM' - ENT - - -PAKCODE: - INCBIN 'Build/Bin/MAIN.HR' -LENBLOK EQU $-DEPAKER - diff --git a/src/doc/ATA Command Table in OpCode Order.pdf b/src/doc/ATA Command Table in OpCode Order.pdf deleted file mode 100644 index 55fff95b7b0532a5c9a770a760763d07ebdc5f90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216319 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äLn$|3?@(X9 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 z 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�s9$J|B-e~>)CUQROXXPx&zmJ~ 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

7F6amROG@g-%M}nO5KV}Ih5*F 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%0DLO8KaWF?>wrv-Ku2{%#0ig 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 CCi?jR diff --git a/src/doc/ATA Command Table in OpCode Order.xlsx b/src/doc/ATA Command Table in OpCode Order.xlsx deleted file mode 100644 index a0af16e0335cc598b72c36d8eb916808a71f9272..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23391 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 diff --git a/src/doc/ATA-ATAPI Command Set 3.pdf b/src/doc/ATA-ATAPI Command Set 3.pdf deleted file mode 100644 index 079b8017f42ad181d3a84d8bfca15ecd0445295c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2353786 zcmeFXV{~QT(mom+9oy$wn;qLmcWhh#^zWQA&U?pw@4X-Im)>jd znrqgsT65O3Fl(%O$mE4ZX#sSs@MOPtrsm*b01V7b?1T)2c7~Sl+}!li7Pck^jusv! z#)JTRX+lOOW_C6P0KFXHryVl`y$B(InU#f&nO>HVg^i6~`Huk;69WUiIH49HD=RxQ zA%FwGqQlDzZ(?iw=a7Vig#V1e%KG0igiVa>j7{VX9BrIFM-;NNcCoQ_B4nYLcQi4! zFmkqYBm^+>^3sc1SUa0I(u-OfIGg;-gAKSlJjw z03u9`0>Z39EWF&p>>?}xVHROV5g`r{5oQ*44h|MZ0Y*^~RyJl94mL(!9eN2{V-t6+ zf5p!D+5FL%+WiTViS2WuiuBSZwr0-egp3UTOw0A(aRTTS?d+WYG2{5hOz9J;&)Kpt zGtw)6vp1nvS2QuDSJMIzG7$nkQE+m0G%>J&hcVwgodqBOE1-)0dch|K1cu=qo(fnC z5-Vu>i#xOCGy-R;=A+FZVOM^~J8VE6f5YHUh@bOnZM9>xW8?s&n4nLjDY2dIE<{;1 zcQ}XUuQQxHYFD>3cBQkfTdLg%6l>YQtS0QLr~B_G&g&crUbK$nrfa_@8UJ=F(yGgs zeQ2GUTQRIronm`p^Qn7$e24p89m4Sed<64ni>r$L+`jz3bdE2)S2{bt!7>1KAaRwz z!+f6Ge@FK3v+U$-;OOk`XkrQv!vGIMMkXRB3J>#n>i>TJBJdZ1zX<$A;4cDy5%`P1 zUj+Ul@E3u<2>eChF9LrN_=~__1pXrM7lFSB{6*j|0)G+s{~3YLI?ZPx1MuHEjR+wN zBO}NET8H`khxJc=h=q}vhSu1SXtu@&Tnb=ce=WToPF2n0*u1nu--6Zl}AQnm@>NZspUtkqY=t}Ij zWKGV0DJ61UA@rqf62PdK(1i-z9R%F1eXGq28}t|fv%_{-OdkzmAp`iBVSY%o9I~(_ za{czDs(>G9vd&I`Ah7rQ33kTll}d26{H-FJdpvM7!Q&gEuF%7@1*!uKC< z$1b((88~N3pD+uVC}f~5oAVLf+lkgn-(Y#i-CpM4)7&!r5ze z6^70r?>mseDiV9d)0=dtWJS;eVtV&uAAVb_VvIQY3KQQ96bG7&3QoP&TW?b)ar4XckNRaUivl#I7Sei!{JR3#B z+Fjl;+)HaSmC@CHeds9r28VW&nuVHfilbdbrxvfW8R|26Vk22T9bERScetT+74sI- zPQ`hWvY$ws-_{meW$>>xAImt9y^T`g#n$Nn|3 zntc)oM-I1eE>{KAv+NmSY;0(#5)V0BJvaUtSG5;$p*?%ey7L_YK2ygUaA-^0qR-3) zWa9XTzqE)sTqmGWiy{l1zhlILW-*Yy?5Z<|o<*%1Ti`X#b z-Uv9iGxYpQ{rfUq@(Q?%THTv9R}2@!Q52)g*dt1N?*m#HBh@s1PWO_{Ir>dr`xou~ zxYNSpi?&;0M$khaYkE=0D_WKrht9KTT?{YUM57g@F5Jb7+5Cyw?t1)0XcpqDIOX+F`OewU&qc{B9GLmhhi6t@ENm;2_wy~T>;To znt=<1syXQPID?P!P4@U*2NI=Z=oK!@+|USKiMV+YJ*ym)S|!1-zi2eRhPY|?5UeaH zq-=4iVC*Bx(t?VBdynak15WwI@G& zW>ncLIv5`GTef5J>Os6mjn1A7ob4D%pGCI@c*iemoM%{f#4P0PG*r^2xl*bv_`2ok-3*__a zU21#uII)4qx&5jPW)!RcT3>dXP-AgDWS(?sTx~kZ<;N&n79q@krR>s#!nkRxaK-M& zgpNkwKc0!B5;>v4OJzA%KmM%W)^a`q;+0!GdjcD8@`49pDw7^!P$656_0 zTmM(+(95|vTYs`U{_$mF`o~P(z|2J2z|h3{kCKV)U%r2oGM@wudKD*=|M<}VQU1$_ z@gL8B*bYLU6SKB6`!Cz$KNI+O6hd~k&L+0b|BT4|FFzqiJ9|Mpcdb7|u>u$g**F+= zK7%y2F!;Y|KM5kA&i_n|`JXWrO`Pmp9F0u=utr4OoyC-#Kbaw)`(jEA|KRb5#-jL# zIPy8{r&?M0AN9YZQdS21F=G2?8lOh;j&?>$CeB*)pL`g4WfOPjPrAk@yW`Ix2^s!H z=J*ry|24M%ksSRm>=aQ8M<-`O7WV%nM69308CgQse;rKD&{E0S=6_~H1JL0-%`ZJun9)6r7nK{HG zi?W}FU*;OEhbJ&14`l5KQy#GkutWAoz&?*KHxXID!H8DT(+e=CL4V;p6f!tkvfCBF zhypehVAnDI<Q^q>=cy31HO^xmGWghTN(kVv|8np)R#h-`V_E^*-O>xp?V5)TM9AU zirq}>iP)}fNyM>tZ?SSO#l4tM%~Nh;g5K;n4gU-8UOJ61z%u=04BSFn1|1;>fkSHK+0gAwy2=Y5%R zd6avDjJ^p}!p5txnX^kX5PFnWph1m5yQ}(LrXR08Tt+2Jiuw(^7_0UTcfFipG|&uB zv|N9;_^1@Zk&VnC9E<5k5LTfBG3lJRJr52PZ_^@o8L;s;2u7qMK}d@J+~^gYf$IPc zu;#Z#I8R+3^@Vefxzu8{@7$6AlrNEr-GSS6UED(-?OH92FFa*HRwhINsM}KZ-x{N5 z>4|{#p@LzFPV^?dcFWw$5#uC#=cGoMD1&>RKfrkI zm}U*x>1lw0ki*$B+$f9DFyIH?wyYN#G5x@6vEgQfmvXShi}~RX)ej?`e^4@FxFTzD z`~%oRy3`oTVxd8_FdOY#n2<;?iHcG?f{EWsSfr=dsWU7n)}6-OO|UVT>k))JygxHm zZt4cllMcjw>Mi>t3JuuNFid7dSQ( z=tK*J*E(SA-9qNV74D2$6X}9=nKB7z$p3!aCWSMpdY}D<4^S;<2YwSyZdiQI@>K@w zmf`RUCz$kpOw$#aBAJrZq|TA3)kxGcO)-YVgq`%BnOS{BiR@gHhLOukzq;gxgeP_H zQ3zdJGF$oy7fD2$24vQ@@NvP4*nRM7tmx4}b%9o+TmZmno@q7LQwYwI#nH%czV2Im z>$iy~Q;s7^qdoEse8`^jF$8@eIAw>Zq6R{bX2MqeB-PK#r-b3OIc=~RS0MFz1M zLJlC*b3whO3NP&vMIys4;*=|NaLCMIuSP>zFIxiC^jz^UNrmOjkBeiGsaE11xX+FU z&qxU*FK!aN>BvGHIfB?DB5yIZ_j`@3N`{d(y z*nEA)8*>$cv9#KU($=?09bs&->;pW=~S=(oLl)oGE^(e8^wkvFBrJh-?(IZ>!eK#S;YR+S>3(f+sa=J@qfoDChI z0T&FuX@v@gdIM%(&y@y%jzLmI2QI;+M0ty2vNoM@VWbo^*?#9x)oJG-iFu6L0~U!otoFZ3fsq^ltg*M@Dp zc?<-YC+O@1ipxuM@8yKajD0wrLLH^Q^oC6$SE0u}8am1%S9*~zkS;F~JdXYOLKH2> zh^R(S3&2H6jU$y|p5OdTZ2QS^iQ^NHurhI)Vv}E48-@B2#Hp_q#rT;!vi&>P0(_=j9IOogUAxRT*F7!t zl|>fsOWU+4XrQ&Apr`Q!L4t%0jUjV|2*baEL8bUf^^v#4#fg}pesS>wf(b|XPSfWn zE}w>Ash-dhl@qufK)e$#pn&A=!Y>v|_TVkMv6gGmDZb0JHd8B*NU2yOEgSCP=<8l|w%JBTzsSDX7h2Dl3P4BJ&n^^Q8}d^Yw{K#48% zZ`z?vz*UxRdNZ4-7m-4!LURm(Mg@kQduB-m+i#nj^cf9sU+*EkFs#*kq7Sf^pbZ-URR4F5z8UNsVne_4=D`RSmUxRt$!_w zL)w&G(y%Njl~TsNxj-%KoK|zhl)mEIusLnNgIVx+6Klc}Bu1djr}&`B{M?&Qc76uu zS>-Q2g0>WYx-BS?qos@vk=M)3m)1(7PFntPCge=UBT9XiJOJm3cTG^pH&-3I4XYzh zaU63kWX_B?i=deMhWgE%d?C-4S^TF0z&mm)o2Y-MAyyadVWm57A%q$9&ZXFTv`MdC zP62yj;Q;3)PqzTPK_%s0+!L3j7+slaZIxh6Pmv03mP!*bbv0b_%~CRN?a)AzG|k*s z^bqSCTz1hf}(svOsb6em{jO2klHNlWT#wrlKsHe#o;b zHFU`SCiF9W(y+o^6ihggojBhZmV-ZOm}1ZJsbf)3E2p!_ZQApw`KbN&ZIB?6L$y}L z+fwFkXJJaM+pgQX8*!sF;#r9jgX9^g!H~tK7*XM+_?81t|4ra+<0pdyie@UIX;|>@ zZ&yj~dR{TQ@y|9y?IWA!E*%}PJIq47bQpPe8;=_#4`Wk%22b^-=Clpbs}~Js4SuS* zXER+hMt90@jBk$Ke!SAn049w=l|g-@N(Ivn+gEc}HnCK)eYZup6QU_S+2YLiytJ|* zRmifj+;)8PS=7j%jGEA$TR|M|kR;Feq*Zy@46x9|5)A?CI>J?l6jdlo5ja210Yc-b zF<~NxVd|8+{D{+#76SK8j9Lgu1C9+|;*$wCyX3F7aa?;tj@jHWBREzgnp$U$mDQ}$ zI8_^AywdYUmWT$%80IGp8>^wK&8u#!3genaovpkQ*?IJf*$Zq(7dT7UZrg5!wHqbO zn{2XJ#nKk!DKZnT`<45eH-09Xc$M5%O?PoF>q^9F;mqRa`85P9U{*D)+7vj)b3YYG znNc_gat>?&h=H|K(Moca*f)yFH$++_E5dd?8AW=Ce!h9jl6XJ0m?sjjD_A2{<-N$u zZ`pPe8`Mz4$e-(1GY7dC!$$R^_Qz}-%MV4;jomnuc`M`Czb?)S9KP^0$gh)=%crta zwS~WkPynKM;~iG@ufDi6t4ZnzhjslH3jn+I;|;gXi+KM|w@izmLO*wM_|VI%GW{cE z=I*x8Jz5s3pBLn$s23Zpe{?*!i%;76&h{r~ddS@}82YZO6Ppb(xod)~DWW&boA^h8 z&>*_GGQIk&UHQ<_*lqQxtSf{nrYctDKpT#fn!x~WP*O(#`;cvqWK0O{NMG4xz5#Ri zdFXP-@Dd;~w^jcwu_Gk_5>B*-OTR!uCY?)1$RDDq=)k(+bsQ`P!5uTWeLpq-L0L8wtP`Ell3fgaBW8Fr#a zEGfN^A{>gMy_Ur@2Dj~1hcpy*%Je-84i!)*4tVwF-+Gq;2DNZ&>XXnE|;HUOO$K@Hq3;7&uDJ zvS*qz3ixBp&N48P7e6wzc3}(9!Efhx%d021-5mkQ;r+()qO5sWFJ$5-{BAL?Lk3KhGtp-DLgs6iv%orj`rQ6JX}87 zl3afujAkLy4)-Bs|BP8;6Dl=OTJ}jv7L4wy+O$^gM*i(S-H9S#4$>jKF2P8pO(xP*_-y z-v-P_J6ZPC8ShcD=lzr-&CehTBc1U>Nt>EMr4nD^r*k}i1VBT-Pq?Cy-CiZ`V~|pS zdytc3pg-8Q)eX~k!p~Qs;A86iC>AVZ4}FF&!_w$Q zCVL1L1oI;Cjx8X>@;)B-6?H3`jmuPk;|m7S_E$)WbMP<8$eUfR%9wlwCLv>8QF~?* z0F95q=in+_mH{Xk`jR8mWzCmhUkm->Uu*JjU{*zXjKJuIJVtTy|ZI1UYcmZmEfZFoM09F=5Ue>OdNCZ@vbD zOy~z25&;!9ICm+_hoRvP_AS;L3*m3Nc%Idf3pV!FtsVpLF5W_s^Ut>)eAN59ZdD^r zLjDjO;F@{PLW~MZt@5KdmM~5QIj;P2y?jcPcO`xhh04%<$vEF>+g6{nFf$XJ1+rkq zPzIF^K8Cf!GYp&x;hb$eT|3q^uIdZQb;<;Ec~tJl2vjw(y;XJT;N&eVZ0qQo8%i2l z`m%V5S1{7G+cbEovuSCMlu*;AVLZn&e)6BM3pyKC9Kx6+&RZGPrLfrN>y2Y`SLi#@ zOw!d~!v-i0XXNPy<7g3A>oaMibxS6)l;YkvL_R}*^^o^aR{d?tH{+aGUJiyvpg|;F z_)X9vKvY$nf>yQg7e%1^c_seB8zn`OYz8}kOtmoRW1f{voq+mEvRFIDSKdLG0|5(=qu=)m@&G0iv$9g3a~1mDo{oLUp;qp5TGmD zE6^1}cx+BQ;XWeGn(c>@4I({1_yIN3n38gY7cr(7*u6*QR&>YWqV9m%jJ_A8wU6JNiqWPol2CcJ&Lcp0H%kTEFdc09Pu3eUnZ(;K$|I2Py>1ihvUScD&gF7Q5Ifmid0+BwAK z$6cUHzq{7av3}CVQJ^NQ(>jY27C`XJh%SHg779S$VT!=L(k1tEzlKJ+|*j`D(?h8L3JF5y~{o$Sz~XCvp#UYfK7}k zFnE>garMeOy`;n5uR3AnC!a=ev35EeR;}!Nhqk)qx)Jg$Uzpo0>ol@s!C14ZSUbhr zCx5ZHZI_wI(mYyb)RoKaOc)A#7?|d@ESSYy%Hk;;>-IK~Qn^8~3bzw=F~}d7$s8 zzUG|I8f@!#&+Ec^)@;+^YEcr4zvcqhI`G(}NB%3Yc%gCw-JcafkiT4*p1-fPr9p;C1wCy1TYHXef&2xG(mo=IF@mp!9mIr1R6=zNj-e zSEk53L?d}s9p91!kSTnA|6zs27Y&4a_^h z!1L(#+Y?{h#TM|s8@7D}_6M4C>TK@C_7AOl97CK9(y~*OngjCwFr@(ODHCOSW;yZf z!da4i#J1VEA#O&zU+0nX+>W~RXkwi^eMqx`Un*#>nQrOj@xMnJ@m(@WFV@~V?XaBb zLOspn?rKdsPmvrzb`*3&d)~5m?R!anFZgA}>bN0V6l^{6G%8#XH4eM* z^np_2x(U1q@&4+&ig2s_#To58*`qT--xgGlnoh9OVmoup;Vn(xk7}gMHY`^t&&$$- zI99M<%G2GTSK>I3;Twm>XnkbEFHp#*8cug{a$p5~MW28kVFZ4GW~2eH;$LwCJ=-69|MUb}evoqkM*xn!L0wN# zI_v3%OBsJ3{x+HWq2u9yGt@1a$pzG=@RSkDb`5t$KR4~A8z7p+B6#CViOngMA++J( zH}!x(a(e1C!zBCNkoV*0H^nxjcat|ZZ(-r9`D5Maf$7Ig;po<8`K!dQO-icKE~c02 zQ?B|CnCAx0gR>BBltWG41L{`67x5IE#3N?x?@qw&VjN#@fOnsenkXP%PNptt517^? zCev}3FAOij{UGYhhvF-hhznDn;&PHj5YTR4arQN zYF%BrpDH;yfPD(U$YVd)7&zehY4jz=pH`NcP0^`qN&etMGDELBK*uY6Ftc^1UM_vF zY#jdB_8Z?_XeL1*)0O)hwP)vZ2ue);pib_^*JE3o+80`~xQmbqg2%O(w+>If&#Qfi z*F7U7Wo2I5JJkOCw^;6}cvpJ7?~WVqF#^YCA(j{4z)Rwa=o!GJ|2(c8B-let611&l zt2D%lLjFN=fJ@B#2Zsdk+c)gdt-idanZA-{i(JUJFlSHR2;8=d^O3bC5ETTC)cSst!}wKYPF=eDPAYap@1g0iGi+| zeit^_3*{j?yt{tFzPq;(61&afX_S7r$O@nb`ZzhBB5~zG2_JuQ%4Rj%W2Wd9c|n;; zYr?T{;TqOsqltJ-yJQ&UBMHBdxhr;zv)NBqBq+C3VrLqNlq%EIrMWNRW(zz)E>%ILz!&aJ#S_v5;9WqJvIIupyBExBW#c$*@ejjM-` zMx^`2&kbTC-nW=0#Qi5Pp-T`Eln}}2?61`R`!BvPdv<;2ZjBN>g14dFHh2e)WfeEH z$#H|RC&KYBnGC45+d(R;Ty)Xx>L?Hi^&b!!31UzCU+$!a@A#snHEEn#K(?`d34*3w zvGKooL@ulhhk?1LHbsEVrWOhJ$;f^G+_?`2oAt~Ti-t{XkHy81l#2qJRr-K+)GpcF z6({6*BEG)+G=F)6;Gkokq$TmcO~Q!F_a%+pm?zmS~1 z>VbvYS+|OD*x_1tG@A1BwXTlX1j;U~C0G;lEB5y{>#vvi+C(IFhdvZjn=P0+@!id7&3iGfy$x_E+|1+n zT=JO31Bx>?6@te%;f>=3LF36X`F_t7J*BMkD|%0|cw>&8VpYZuj?H%wtDT?AUbX}L zo+0hQGKSP}v`KYk-C>@=y1H%c&Gb#I$&I{Vrd^2%g%|huyJ@$-O$(=7-+B4XF2!;C z^Vi^{WiejCSGy7;@Y@=?(|w`&v^DuH6Y@(>bWgGu+*L8=*j%qD$woD^8=o)UWN2wR zM00Wpe$ObC59U?hP`c?AJauWUXnr^MTx{DJqs!dWGS!C0LWnGd7#K5O&QSp<1@@uf2Kj9+Z7E+ekgwR@U0qBxBkIuY^p) z^kB;wG^Uu`#V#zjlZA|>FNt2kJUK>fY|7i#>kzKbBc*M!RW*CCeRi}YxYs2N?B+`) zkZ-#pWP!=tn0Uin;$jG;+iQ=T_V%ky$eMM_sVdx6+G<>X@x#V03+!&jD`c#A0eMs>kk{A$sp@(M3|jTaR$ zH`y7bS>Nr*Zk>^>%=^~Le0%1Td(y0%@gCu3-VyR7v+%9!N=)&ccbyh>==rq=_{H(w zlZcNqzU@K@->v(F!1d^W&O6y9%DYn>`^jfd@Ir&`bg1owMtI8S0a*gpYI9FJAf)>T z2f>@##rgb$$8zZxo`*MoPYN|5oo?=Hyh*HQ%-05bZN8=|r)u$=`L&FQoPGEuhnJLZ z+!=kMAg@ISUJU8^+D^nL;4dk6eOP6inA%|b`P-hTFA+<;`&S`KmcxGIH+akRz;+;d zKw^H5If^LvfV*yf^yQ)L@=%3SJlOfCU9XE1h*YVWbHxTGu(RH9EiNMZ3O|oId!!yS z3fQ$8v!LT0hfP@e@P}!H4)7_0=}CefCy=uY`CE1p=JQ+!xG31?`^vQH*zw%^4Udnx zZ^D^Q^dYcQ5#AYBTgMLr#%!BSTadg542!d7=dHU;2WR-l>{|O`3F})qF@7$cpm#~8 zncm|A4v{AU+tt?j+8yUz8qd)#Qh^8z)6uXED5a1?IxP+dZ&BW>uY;RrI!3;eCw^P+ z49m%!TaW7bXAil7*;;Y|U65H?3s_;^^zZMuXI-_lt~Pp#^K_?rH}jd1F%KScKy5NL zeAP24_1?UmHCBO7cr@LVWp+tQU8*umI~^VT)$r-JwQumCHaxqA#S!4q7iQhy9lyHb zc5e^*a&<%}u%O&TJk1AmkDu30hc@?ep0z06BDGoUNPj`^R7f3a0rt5>pXeiq)(kUx z!6!_714n8{vmfICy?nm(e09XA#~j~_c7O4#O2 z1^yn19(p?+PkYT>dLTnRo?yHOu}pSWEeQ9JEA+Enee8Wj=F|>@!3PzUAb7v|m-sLG zvEJw&OY{hFfzn7i!4Efjc%X^{WPw9KPd0A1l#*t?xL`ps*(WXPIhO2al`pJ#G=olr zvc}SF3ABcmbaIC@l>3|KRKwEM!}H=F+$rwW?GiOO(27`v*|I}^djXDd@=<$$8Cvg< zPt`RW#T27t^FZ<{gXppLjEJ+bLkcZv&6>IhJ>>*4txKB{qHp&>RW0WMQXhP%KInjj z@}_Vrtqp9$j8RC!5@U)apGP$Fw`PKPu?KDpdHeOSB$UCVz>>K!f^u`y;aj7#@qgQ5AyJgH(yh#+_R)31) zs+O+fB)1j_L8S$oe!RIbx#N^pCols;zJ}E#@LMb#;`>=-TXM#C_jsdZb{YyJ7VZFh z{OcD^*KnIyS0;B`(N*XnQ_A#_rl=*N)5Lv9TftXPj2eM!D|vp;g*YLfp)JcY0;e8N z**nM0^n|kn+0J8pWP^u~{L9Uui^T{9x);Uw_!GSluW>e#o#bm+1yeJ2;v1{3UtS}2 zZ@=g}WE>_xzBx?koUfVRz_{otxI#LmV!D28Zgx7^R_|M}E(FR*a35&r%(!Q*O{e1T z+?qYuNPOQs^_ZU;~Obyjp^+0Ajwj zIvK0v)Od%PeuhVbA8edhjZ_+X)?cDl_89D|I9h99Y)h@;chsuAm_8DrCa~ zE#8{u3d))z@Vsz1X8GJJGefjcc3rZ%{z^5F2=yS6Gon)Bg(d^Z3e*k^T2>DeRSj}L zHQ$IkISIjUN!@4`P`kN&YTjZv2UN-<0$6_RDDhVKR)L*9um^yzdtIqrMM;1ZhcRDL zAR|;b1F4}U4Ey~SfR$WMbgG80!$yt1cffzh@x>S+P20a)aNrFnIa_IyFuL5A0aHot z>Ww#LWfMAKXwYoW0QH`!1&ryNgzEi8q5ZQQxHeQB_ZSeI%T=y$h?{&{9ztj z0msiD!v;JX4{cwA8F}Q{J1cg0B*> zmyQ-`lW-S)Ut_8ul#mv!7}W`=?s07dZJ~JDQ*f!s6O}kFGo!zbrZaOdlJ=Z#$0_S6YqC3yHVakHV&3p#^pHX0W-GKnK~g;?)|8Frn~M zOf_%xN$d#MBG{?xl7qa&&VLES6O49pZ#c63mfmtXqD$^NkZ)H!cR&w*^|MfMRr>ZN zaf61hcn?aVRi#THRezbDS{>%8bX}T9;DLx2#+m65Ek`Rrf~y0qE)N&1jvjh3Y-e(m zEx=~271%Bu$2{W@;&{l!qw$x89! ziQMplqhU>IvyW?omniD@Yf{2tISu*ceoF1S|&0k z5~rwrsVkF5&Zou4I-@-j2EsA2#p;Z}?#y9|TpmAy6nZnrJ6ZqJxkHo(safY&om@eY zN3A@;pzd0hR=zTMxhDqhiBP08`eKkdzoQ;d`-_7y%AO1V7rz&kQDJ>#d$tM*Xm-gS z1(0aufj`1N!7pFfA)#cE0(e{jESlIJ)jwa{;Zs22ifn&X#HF!AVh=|Z!)L$liGz&h z9{3~dcl}A^96kji?zixMLK{e>H*q)qi?_8phr@=xAwsW2!$QfCL3MHT;j* z9#+QXwSVmS1sW>n@K1w?%RBJd`_mx7MyuQZ3?NZ;_!Q{4wcFoSaBD4n$Ui3s9!+Jh z?4K{`@F`$$RklkM{|FGV#17B=CW;r@np5C0{F+k*8qc0O$Uj1?_Fo!@c3uVekf2p* z@FL(j;QdN4J2H3bUaeAh>O>D2kQ6qcXdrfwZK$vRYWzrY{`CGds(wb`e?;(ab>L{U z?LQ*iC|Ge_0?6srweWR9iG<(_IR0s)W1D&YAv0&*q4H|+;ah{k%!_$cUUxB8xNNR$ z_@+#0cpk3^Mf?&;z@{u<#eo4B)Gyuts>e|uv<9z6*_`c?On(gF9o-|6rAO1&rlv`2 z5TblE994M=B6n+4FMqqyW~ z=6eVwE)VLTtf388&EPyB)?kZ3On$Qb=&`^BK)Q)ZA=lvV=(dS#eyaS)+dJf6=@6nF z-aPO>Of|$RD1FNjL>#y(H3RLeYE;O@MQRp+Vv_?aMcwQ3e@e}VcM@L_n^wU&3r)YU z)MdL3Kj*kn53lAl^9)DzswVrxAvUecBdl1c!cIH_vAFgi?8XI zE7N6$gebJ;no!32f9dz@Fx4Lp@C{UY=>vuT4hCeOZxGakKvy-dK`#@ur&a*>v>vPo7V zRnW1kbJ{unA}$&XIdVhzV7(wb&DF0)H1-PLG1r;88HT0jN#S07h3*OY%}!dtW7;#& z4JSe(IFCQ6b9X{0*n1`-A?Kki0fx-5>Or@9Yi)FGpgC$NnUm|zb#!@<#P3J3B@fCM&$*~S=Xeo0;DMQ5X$n~NI#5sQplaeZn?0dyvOo=&VEKOAsi zY!0nM7>z9$G%)ISrV86_C4qUY-#G9A(O|@}!V2}pAPR%-QB^?cvsidhE~CfQPOCH9bYo#r zSFV*>PHlP0IUEGGRoi(r;>Pr}RE2P=`i2xugQfMM2?o;1PphMEt_m(B%v`q2pv+o1 zSflx9%qSE&Uu+=WjX^$_XvyZW;I&+x6xC^2Rr#tJIyKcuSDK=;``b`*)eGq0NLCK0 zI~<#5r)e@9Ab`EyUDmpGz6xm&jyd)E7icWd_C9xc1}GU(@F;Rj_spvtLRQWbsmTLbup>YtAUt=w6 zzd^!Zj^I6onR9E8L!38cq#5;FMhI*(wiPjSM1VKA=uS2EE{u?TfK&6LboPgX=)hS$ zEao2-c8kMP<}ld}Kj`C6is} zVopx+p8<59(?7u%E+L1cBH_D|n}i=;56wnmyfwA7E^5sI6>!0!Eg6k49`gqw2IeF%M95rXcSZvBG>a}7}J<|KvQ|2 z*^a?>F97$~{`Wm@q1c~e>C(%)E-#pr$rw)HtQbtKK^G)3fwKflJM=VG|2mqz3L`qna#tGK`#@ArvZdWrJ{$@wwoGO7_;* z1T`4dgcJ^e?}DTG)&06}V8cd}+h*Dn4@kyo!C!d8n#PTPM0l~%r! zu+*My4JMNR+6pd^m^9jdV#eNaf|C(ybifJXb=1zLVNAHC4?7LSuU$ zyJmHGB8YXvX8(_}RQQb{5_S-zPOZA1-tq)~X$rYH?ozDL(Yd6u`%talxCx;5_L6=| zjX7Fy6fGzI+65Q0NKHQgPlioSO#10WqTv-XH*qQ7Hi(*>$PZzNX#?q;*Od`Ar{N~b?=G-Oq{q#P9~x1bi|qknz(@ROQyp+zTKU_WqB znOUNKSIdn-IDsKv*%$-yHw_S82r{sb@zKS8v5<8nnKk0dtc~ZpYxvUz_=M7|4eZjtP$I{|{&9 z5GxE5bm?o`wr$(CZQHhO+qP}n_r11l|KDsTnZ;z1NqSMMUUs_b)HzSTx19gM#n!n* zl>tc>V-jT+dHnI@(*%zv^`@X+14L2<(R*{Xiwp$K6vi_3;a+F?tP9I)sHzJKaOF`t z{Fo!EG7|X=Mmp~>C4!le@5{!_7F%DV>v%|3`ZK1tKL3~LmAeNy-KPk?PW~5NLe9KUjLUi6`S6YE!KMgfImd+7;`(HWx_A5#@Qe+rA6b z7F9xRk&(*`BADuvke;Qb<}u+ltwpY~+m1;Sp!c5k!+p_0(oA-J@lWjd)g;go;Hz>? zsIkT{NP3{VVkQEzu|`>za%>;Qv1xvP@T)72W_3^^8Z1d6G{fWr34T4h3_{*31`7S) zIc7?&X@V0;^0u_tv>t|SRNQ~oOPK9H3=HSb+rgE6NG7M*q-q9 zaD>n>M~t;*nLUELf$osqCAew8OZB9VX|;>1=h>(^=Gk{yciHGD)DocjRH;Vf4P*_R_bmiq6nZ;y zFdqOEXV(Bg844j*0K`(*1L73mJ=?Mknp4XH5(_#fWM)*{PvyYLUxM{(f(gHZ*8Eyy zJ;Y(C?^_B7r6A-AMpRl(I6#&xno5_a?L#hS@Y+Wx%+&1x!O7#4f`tcpN$@J<>&QuxyAUMTcMplJI5QJ zKk`Pduk38}JnT;=-~JvSX?NJ;`FVNMtt!!MM&Y%(fPAY^>*qb_gSWFk49G4_+?=>` zzB2jj`k$ER(e)NjM&P^g+>#kcglOEjbq)%OvQF@FYBR4;YACZ&iYPFI2p4Mv#S?=$ zDm-v={osNp-YNsA2k;@vG31(aJ*Cn=5Y7j#mA=%$*+JXE-NE-DoCb}B{B_ypUPX0( zZrQfudqB}+E}j!O0fB5$MJEYE7lQEGU<{~cq6ia}DuWaReJCy_7;UB#@)S zFd9VeSLrAeNT|Efs;3Syo43&PwY89SdTI=(j<;mIru@&er};HF?}}BmU+n$f>VARs zu=D)avqYiqrr)zP8N98AYh{Vo?fU&@ak1g{j{I$J41ZSE4de-Q+OmG%u#^_kwL&>d zR3yymIj!p0_w0U)|C4nX=DRj<*z_}Nbn34a;3)1WkitfGW~hP4vrzyuXQP&a_16NT zIWQe&M`oyEgfuWAvz#P2fxznzeMo>LeN6d{G&=xa_QTXWWSP<`iLR>}bUlO(K=N4y z)sTgH()fH}^K3L;9?&2vS`D^V8juB0lqaRAg!YLhDk`E)2gkK)*9_0&nDi~{SpU|( zLo2zYo7-{}%X3iSPd|$pp4v z0y>cDkiUbfbP2VDPMN+$zEJMiPR`P5U*~C(c1|0@Z4tk;xI2hzCI~>gXV-+eSkgru zwP>Pr-ISav4b8ZAVc_nVJa8EnPSgn$<`+{6bV!ghffR3DlO3Yeovq}?HiPw7 za@e#LXq6-rvlOmW#7bpV|D_LGwKk}s?t6^Hva-8<1*PHPtX)fC``thc{pUY(TPEN< zEY|aRNyskQ=Yb<&b*t!Bfwc!DFG6p~vS}<8wFX=~g!W)<@WNDh!XZ!xgunp`5vrN! z!}Fezw#HVY>9_P;ewaNLx$I74-~FaCL$_J-XO6gk9N6w=x7F+aeP!S*|9i?8{j8LK z<9$3e4;bAfcmNtG!WLZ+wA~g`uI|v=zT6qSL2%b{=Ll6_1b5($294K!2_LXjM2rJK{NS#YV$eY$Go)&8Fc%uiauLBw!KegZcfA|K zP&PCL-6T?oHajN?26nc?Ueq@qGt-YN-@BdtP3Q3Bx-pR_7Yq`3flHqtIAI@S7Y6+rt>Jf%JF**{#*QufbQFR@VwkqWiFf5XK@}Q zYV#YJxxlUbdS1r&FU=o{^&s|x+55cw;J5cN8V$}~s{>1!1N(Xbkdn2~r8fePw=Ax0 z>#%vu9BVpxG_gywOuuklwwKM%I%YTqiU|lRBSNNRB9(C^8xt|Nxhy7u?so}5n1L$N z1X;eOLt-$om(2=YVa#}-Oz6rCFHw*rhTSlpf@r=B0L10td81&chsi^5->{?4p2e}_ zcIIFEi)Xlp`=UAhtyayi;@%x$Y`V@5nEV{H*I*al>oG0HPt>HBF@Pa!2DmI_fm&UqQR6Z#Jr~-`JXO zIeG5xDgNWd!g!|2lprmxLIf`Yo~$5b>%!c?i~^}3g@pVm)kJ*xvLTt4NXJPRi0CxI zm+yN@tLOi`9~mk`t$tY{@7MckF70)`Dr29`Whb2)SZWzUFmWiFx*=mg=1HU`@r?a)KU!l*{`2m;1 zHdoLO5u+@PO;#QzY>=TcQDvCJ2)Qn)FI65E(@boelP+T7|Bnw<-ai+2%a_xVn^oT^ zznq?7^Do>N4%%ZPI5n`Jh}4lm)~X<}Mu#WGc_~`5W{R17PR~%g<0t*B;dzVx0pjQU zjow$rPRH}6#nT|){pb_%Wtn?!FIrZ-e}v69e79<^l;1gEa=YPVHylrM3r@)geqtJb zQ^#1fMB$0~B;#yaQ}f>}!qC|v0{Rg|yY}}@wAijhIzQDsfC3Wm1r8WR>J4vJr~!TP z!sqwiGAE?q`T^+xM|3Rt{1THU+(VE^2#7ZLA=Oc5dL~F!u$w7@r+^2hrsqSULx|^L za)NqIEz=>j?0xd$lvYHwc~~%YY#q9|18(#@Y*R+0ArMF(7V~qydBg+v9D4`fx&GLZ zcOt_^y`(9sBOgB0AVc1F5=Xrtp!mGS znHN@FVzU{*&smsDZ&9^d>=i+!v$uO2&kqD=xu;u)j6ixgZj3N*VgFv$gj9xX}K(4*B4i$^vl(B$dn++Iok>Yo`O8_)eQDa0q)PpQ;7>K$60YL>X*deuZeFu6t283az*IZZ$^>6k^Z5bT}u|rFS^Nm$S?Dp)X_?9wDnwD{|3~-^w z2y`}X0)<%0ky45npNc4Y0R*|G&}9rx-7%wdd49x}2)d#ab^xOB$pe99U*1__sXJ<4 z%h~zTz9CQj9rZSk+f!5Am-YX~UrbN?D)Zm(eEDxWO3Mf)`aJtajPhTqb-Q2p%-R)V zcmQFpQD#;`*sRr~a1<(VcJYoKVzyxGa+5LG!VQR|Imt+%d|-virXeaa=u1XWV3ml~ zpbWbp01^T)GwE{^3kCMIQp>6RM`}14$^}5dUqQ@9b+Y?PPg{$6voUSBh1d*n?ki zL9UmYi9*(YX?}T zrU)XicRL-p=J}#QgbBgQa!`R^&t|U@9`3U^Tf6S7ZqhYzb9=nJ3PvN)Ew6x&il+fn zE7L4W5AI=rM@S8^H4N0)0v7euxX4D}HVwk8%D+oOBokC6eZTtbpLOYRFMZ$L6FTBB zEB(=Y8h>W%<@?fnTBF|o5-&5G9~ko97T4d`I+gqU`mf_s&40`Cm*-_8-v)UsYbY4* zKcH#FjW{z2lX8atxdS(vBg{J%NC~0<=H_4=@-syI1#6|1$*55F$fWIRn?n1gewaf?2%Kd*FtRgx;a$$X7Y`?dE&M zUP<=~j{Px2Zs!+i!vE;+svF3`bZs>R-yVA86vGiG8Lwy!UBnT~9hEuXY%|6|JIQVn z-J*=QIlG)B3KALejY7B<8b@%7{4nOOAaWQj>Rz84n$qEANeyYR*=xcSmmYaToH_gQ z%LF;v0B`n*nnvTV`Vht6xM`kZ3^gFskZ2;A${~?rGF1UVPG(2iU^u`PtYXMSID){vESBjYe==vtL$O<;-UTcRpoX6bJI4#YjziWI)g&-K@D>81Zu zWZ`&z0G@BYH-^Kd^fa4JA*BIfFmb|(FOVU9Di43hyE1y2QpieKn1Jy<`+@oV4&&{y zlk%^?4<-k*MA&yih9_%s9q8ulUfBCt4*s4@jRNj zG;Gs;Vl<5-Q(CO_(Q$}q0kn4y$t32;co(UmMI$XlP!j1J4a8{AsE$of5#gbWVq~_3 z;mi`y1QM&X-nIxd$4gAv5^nOu!b$=J6B4BxawV!-DE0Pn#aCQf;5ke*Nt zh2-dkshCmHiBZ@9UEnx_SsDT}Mk+~!AavWaK`Hh-(U$lWEV!dD(+$S<3-ggqV*zBf zC=H$ttQLm_ROU=cc#5^#Jp>ku2o{UbsGwBL0VC9lM|`Q+El)H zs7inwh4}UbR+iz%r7<^2JBAc+j!VFY!~I6yG6d2e$s=Qr6bhhdfDHhp<%m|^DE(0; zw0rB%fZxzx@*n?zPw$Lmeip#S$0-TjL|YTWJ`uz zCPWt+^ism`tTww!`uOQl^wHptqz?c~BoPq9gn)4{@>VA45N$7^E{_C-EO8b-9A%OL zP>d;K6NSJ?qOplGqOk5NrY%-`_Ed;lvZP}pbYk$;0W=-e4QM(9sr7E6F*Q6J~w zk~7w4)s)?KAZ9K=8HuPLi~d&YwkK^-@>%&U4Mb=(MXLA5o@tV{ZiTaLG{(5yirW@? z=9<=f=i3R5gS~^zbLME*0U-KeJ7>?HOg=%zDMX&)kTKNu?JR02R&df-FPJC-vGAHqAC)w^8+elT!(GX2se)))ZKXcI?=38ji|$#N_R zZvW_Ov{}_q|D1Nm>~vz+FRPz}z3Tg*;(yKN^Z0!o_Xijs9~#NgZ(`$C@0RkH{LA)W zFUG$8FN1@F&*t-roeH+UXfyy*g|pL!oqOl>;GJ2+&m6@$joMEr(4ZfyQ+l-$&p+FH zhEQQf!cNCQRjx|)_?{kD4u#AZMU3gq&I~TBu1nStb{)caY&z{f zB2EgyLt@)v`&9jNZ2ipWR2%(=L>D%e7Q$#98YT7t124AvLKQxk@oP&3Hl$yH%w!%v+<%>%Ns4b{8 zR2K9W6bHhg*^As>)mjWV6~gVpu6w zfM_!NbY~npK@qI*_;c!sut{7vONaZB3ni^J?esFEv3aODS+ z@2ir0dh3f0H~M__eP5E)7|AvN@O_t|_+7+8ypi7#dGP0lv!Bs?x3049ma6pn)%o4| zKn12T(04Uu62&xG8Wa{}FmhM@lnir?a%pK;XjzuqUvLwD()=V(MfKdG={i@KCYdIw zBC1TBwQ|(TwX7&x^=xfhY1H|XWT#6^cS{3dm%#420O&h&k~Xa>+gr5OH1OKLhlVtT zqBbij%&Iws9lM=ys*u?^xpPJ?L<$)|nFP3iBhk7xQo~VDD-Ongd*J$_`A6^%H2r>x zAmBue5Ro9wb)wE{q%n&PONFah#WuP!vM_%!eViYY-uT3tfVcoE(7VIbN_OHHlqHA| zvu}uYiM1zo{C|AEvct30=&slN{ahYqu#Sr?O{$r!4VGMIGB4B&FVP+ zBKc)Dk^Ct?Ek<-I_RTrzsu`Q~eXxD?+y{Mo5^n)r0cj7Jbw2=?AP#cWwwl$`^ATH% z9XqTYKx`$gB6ad#{Z6QB>WjWt=oFZkn~GDVc$A3MDONRC5kaS(PB@v0u8Exl*2sB= zKMJJ*NAwJtKOoj$tLkV9sfnm*T<4uE_7uMF;Q6$hcZYj?N-#eP`!EPQU5x)K%7MwU zt?8D(3psXOa^bQc%ys~~9|&uV>@{Z93z;%ZDl($Co3$Ycd>{#YgMlx^a{1PQS-blIcpT=EERfPm|c9>w1*4# zr$Jy`!=pwyNd?F$r&!fQCdze^tH~tww;xS6sN-RrVeTV+Sc;yk8~8ghJ&H9^RIRA& zIMMF=Qzl;DL$>>+yZpJjcQ+z;jrQy}K9%|=Pl=@&*Ue|)Yk|;P_$SIA)j#3mGW>}7 zK+h{^*;z_bO_ZnXvXu*tuk#YV#aQ-^1-V$Xu2HX7BN|nLfqhga z9bMvP*-UbuLCi@b3_>Dh*B-Acn~8u|I@yCT#3=G-8ISi5W7?%Dq9u7YgjA35Whp_; zjOCiJAa&~5+lqpWO&uRU3N2O4NI;)&ITh}^RBxKEM&5Xj$NLrMCw*|7AkBQZqURj2 zRtEu8QeiMsLOohtddS8ytxI&r%A4uPavkm^;3_$${)4$kk};c+NGML2DO+d?JmnUP zvfIC_e{%j?|FxHwr|NRsyS8<`@2+!?yggILED0tdL`9fB?S4T(^Yt5qgB?^we9WTj*cJjd)~jbZ}#qI0p5>i>EUy| zju&fZof_^`t`EVrk)hn?yMBR&g)U`$>RS^@(0 zG1L$ZtAS21jsiSJs{kZ49(|ZFpWI)*zI4^SztVj-k-@La(7hpWHZT!RNnp{}7)&9G zR8nBF7bz9J=Z+HJ$ruENy?%rF-7e5wM%ZCv^hHBPyfwEYyj{&>q9F-el}Z^Bs^EaZ z9i6`bDLSdA;sj7VPR(62YokE+3tmM`>K7z_|i_!&gI|FQu3|FF93f#oFu$+r-Ci`^vgn8a-R+T z${#DpO4s>GY+4x#o&c>kVE9Zp0te`4^gP!AnaQ?Gy){BQGFDXrg*8gV!WI)Usfz@L zaZGW2R7-s-n%lnv00a%p?+kvtah8PC9Ri5%zYSC!tN(kbiZGH)+DRr=R$E*;Am9&J zL>N{%^b|!kkw_Gemt~AV;tW&-AEycEu18L~kdXA$^w*{}a^O^HN751?;50tp2{AHO zl3_l*y@CSsO8V^!Cyt@KKkMx&XBCZyR5ctpE~NZAyBLabh&gOz#lfx@rZh%DYYv$- z!007;Bd6sIVQHX#-F345rFzl67+#`C6b66wU@L+o9(G9Q+DyYt?79&1v+DQ{2{xxx zy3`5fALXOvC+92q$M2zqcCXyLBie!Y%Wf0$7u^oaJ31kFj~L+~B73BHpu5BS$J2~I zI3$9kAkZpbUWl0HH3jaL^GLW;d!KJT!$*~7!Kvbvai=Cf!=A`eQHh|bBqoETIw8dy zn0b;2C*Tnw;0lT=tRful+`BQ@GDIS*Rzp1BNQ;B)oJ2y$+R)wwptJ-q^oPKF`t8WBO!^Pi5XA{iNGTbB1SAD)=MxT z=bBKSv$E+i7)U6^A>(gr6Z8oqEQcdpkn|CE>>XJ15i~y-T2BFfVfOcq(+rT6c0LVZ zB8!|bY%C?tX-lY|LJS7i?ocq^Q-P(frpr1b*w1V7z?0vz@HC$pFAd4wct);;IG}2>xMw+z|`P?Sdijiz&x*@Xwg`q(sMHCP96ayDp;4qh_fJz}b7ZnVH5`v&E zoa-QhVvnl`sq4b`Sksu{#Ox0&Ky`&PD2{`m03b?v4xv7z?8_l768=Mu7AOMs%W07s z6YDCHSUYrL$lX-1$~$jT?uQ^LZ;w1mKbTvAY(?DZhgH#5J1C8_Q z!MVhotmcw`C}x<-?es9e18Ng`R=DD75`6H&auFQrq<03XAKSqq2e6fxObi4V*COoT zleZU%usp?1 z5;eg5Gsb-Nvc%;V^)TU7g)Q$w)J*|F0?%^gIkTL5PK;0u`Y3OA8!j*~J4-&OjG2WU ze5Z0jQ9<;Z@VuO=5D(-c(gVM)FxIe*0}~(3 zm!ReM&JcY(_U0!9zG$rgh!vy#Vrrx?b?V$R2&sA0G>-nW`Cb%nYDTgj<&d!@*o*&V4!Lm4*xV zYrwNDsfJ%vWTptlU>JB8gVe_+Wx)ubb>5{tTN@!k>eNV@Sbno6f#(5(wdPXIUI$t} z;^+f7Gx;-X*pR6Tz|dClucLQT$B?BGZ!IffJ?EGWlWz2g$7oh(x-7S5oOyguC7 z+t+|N552F|lsB;U(peJ0$W zwb9b#2-fE|VII2bd`TWx*;0KRAMD1HwBbXt>ba+j+*}Q;BrH5$*2!-*LkDFlkIT&S zlIGmNuf^@NwlCp&fQ0cFI{+Jxfmven{H}O>-CLnv!Mdtx+#KPY#vq+}l6xX=;!g^t z>e6A_QB7qHW81>gHDGph`E_nvOtcWUO7n z+5^SNqd-tThjX{~Pg3_kK_t({Ue+G<+~~JG@or#p(b=U{(?Tt)clI~UhA&e<()c9u z08+LyxaKf?__yJzoGqVHGWbbTt5F{znT6ntG(&^tUhS5Tw_GkI}B{R{!%NU4V_3M2nR;vu%zad;sD+}|f44$R zig4(p-WD`FHOwQ9sW(CCW^}PUj&_PGr7P9DZ3hDL&NY4B(QmgHUL3}DpOQMD1pmbW z$0K;ZRhg65yG0WIz(^%w z#}gZef|*L)@=Y5aINX;!cD>d;=D8_;PZ>?NnR>e{AmHs>Mr`rad-z=)@PM%&uVI$1 zf|GtE)@|0zkzD~%H-6^MwBW&+j5?Ms156)>$SlbCMQV1b;#(YA5GcxYjd)d|hJH2N0V_3K^N zJzaIOaRflUGV9vDN4fHfC5=MT1JcH%P_Q_asj^aYe`e*$bH9$kBlsND7}D->#imI)@09o2HhB&G7MOySwD8aBx2uLhK~jv67@sbDQ~TR_j0vu`ls ziR)}coamahjf(dT{u1W*C45fn(r)~8(_N!@x!lHu7N3fBx;FQzYezq{G~vqQc-^Di z3(>eTy*%2!#SOFj`2Uu)Q_z(XdQT)4-1zAg)xSrMUlG`q zuN%5oQ!;&KA*$N$>Q;aE5DB^$tfm zObM{hZhW=xN+#_WE)^(ui(g~ppM=s z5=4)MaKSLD+L!ZIJDl=}od)-h#^rPLSpqm~tH6hP+1MZ@)MR?Jhem znF}k6v(Qk?1cL86JK8x?v;DX9L{PcG-CpJQw8QHkDhF(j{Y3(65*x9GC(1Ou#F4_K zYnLS1-J{P(*iY$C_vHBq3q$(J|)O{5wD!M40V>R^}y zR^rl6_f|ZIFh6~dk1*G!fq(sOi2N=CZ=7}6#}X(;=Nlk#mt0x-Zg~XDd#>l3q#hGN zxQFo2Fw*|T0J1W1)V9Ie{e8n;glE`?yLFdtyMasShW9i`I|Dz)CtZq5Lcjm=8JBoM zAyenyn05mQp3lK>5#!&~sF5_6K=!4Vc@tLIbJ@G8?TuqMoExk5b|U8=0<5~VmO_W4 zbwJlJT9s>Nj@RLGvF=^px;dxVN8tzlM!H;;9r$#L%~AVj@G-0mP6KBQtKUz{z(D8Z zHb*LQVs-#}f_mcmu|5SJ#e`d=ZiM*b6wILArMVA3jlW3uPqrWBee%$xQnMp=SKNI` z_Z!YIyhB*&u|hdw5ksFUC8|^@vow+IQHuY+RW;7QDjrmW8W^0UA<8Hz?#WoM1o~vF zM*_E()~d0V-k8hiHoLEvTB?{vK( zj}-euN$&o9{=xo9f4iW*wI}a=AbYzNP<@K-X2CAoXZxN6OoH^p#}BB@BPxK(xatsj_KksejUL={%&@sQGJfkl`&q zr1oh!bd5zxO-W?$hp9>NQXxpZ8MyVqUfmC*^kJ14Glr)P!id9RswG7`2N7nb=Hf+A z5h=5Hj$F^3s?azdq!1G1mJ7CnH4<`cI@+1B=q5)t9c~R2NRdqPO~8c}2Rf6kH7nr* z-r|LpD)^8p&?*?Q;xC58ho*~rV*F7~Z5DbhyiCNioOeoqk*4mv+&N&e6to4dJ7{e8itmp0KE>H|mP%t*bW~-ESgK zYmZ^%{q3idMhlvpiH@uKcf8)Vc<2&7~ zq7uV%oxoUZJZsCgM0FNGr!&!RSAL5p&ay6AGIUZ%w*wdxcG?tVNoe?^-lk{ikd9oMpmwOWR`-Ke>-=pvCjv@cN}yv4TLL za>$jKkf$9F%vPU9&&Nng#R!r5#tC65*+>w}BaY~KMFSC;$fcL8}?1W{XM z@n0bMseMkqCxzsbpGUV@g`pD#G>jN_LgriHec9rD~z! zW?a(*MsOWDVoXANKw(T7=3V~ibQb@f_AdQuSa|_xeWI7HtsYuIvYZV78iW~g*qMjS zcDGXha}+YvJyNl-A zqJp*qYj?N0bGn`FuYxR&b{_hYSo#r7jGc?U<9@cM zNue%21_65sGL51w?4i<^p^p)(Vy$Y}W~8r50R?rJFzhF-GCe;}j{yDj0?2N8wcYMv zN2jUWHQ8L~5`MP06#M}WO>^TBeaH7_Tsog}i%;-Aq{pj+@OHWB`M^W}3lY>QMY*lg zQW}AB@tfnJ=nw$d3DUjH0+0?rUj4VTKMcGgsLq&pocSwk7NfiKLELBw0+nefO<{Lf-y%vN*65_75qe5 z20Ln{i~x?ULnIP>Z%;>@kzzAzL=dUptUP(g_Mb zX+N=N=SlLH{$YOxec&@IWQkB(%&KBpnZ1+!aJikXb$4jd5Z%*n-;WflBe4_J1b-YFqyCH1LJ&btr6X)JT!UE+ zk$~`z&U)~VoVs?`&PeR9&P^2&S^2Q-uph7QuU{RY3OV0wLbQ~wEJ$MGnnhTQw7^w+B_29MSR9F*koV(b`QPdIYyA%azg-We(V3pa4IAi@3 z8bq0IOQ-rcMkU68ls2lUwR>0=VY-w>p;S>d$v~hT=++x@I&SCb;;PeljP)^E-+ctT zmC9up3p!4^q$FddHmh*O;}e}66t`Tn)j}O6HkPm#{5r{daqynxFQtM?rNCemf)v?# zT)G>v!H20aig2ZycnUk;P{MWj+5nD%5UwSxz~cJ&X2>;e{$hqHF?#d(@vx3?ITDVu zjH!f0SWw1PhRdI!Ff>6SMG!qXp*Twy+!W2qV%A2YbXrVzX)7_^5M~f{%D>B4B0-YL>R;d(N{bRQS#*!MpIUIX>&}xgV zKmL>SO>5f_ZHur!WFN^)i(mP?^81GSiTmq&ivLqVip}4dAI+yQZ>*nLdk6GU=qL24 z(OUxd#408%L!!jZAW+q=hKnGWvRkPeDAa)!$w~t$kY5I2A|CYvr9qH&ic&PMYC;HQ zN)nmciV$G_#Y%uKA%@q23v(F!motLHk_!t)CuuA#V1;;G08=n!RsN;o?)4V~sNmGO!4Kz*BUkcjJU&Uh@p@R_ zNdBU88BGix$UK%PCzj4fF#j?Gvb!L#i-z&orrY1H;gg$mbEx=D=qJu&en847@gvlz z5E~|S$aG^$ngDR@|u!KOXN@bb5Bwz{;OEH`>Ipt(Z&nvX2K&PM?vWw^N znVHh>4!~m)_PxNHMI2X2q{QZ|AOR)@+Q+HG#IS2^v%p!q)f4JS=Y-jw^!u6fpSXV; zT)#Sjs)0rrYf8xO29e4%oma7xM47gewv0A6)Hq$DWSX9PHX{lZwoza)Y5HNy+U5jG z_F{k8g*As{eIwkGVeX5mrZ3Ci0*aC8x**exp@G(xU)I_h3#j#vs*$liW40=6y&P|( zS>Fp*Ucz=fTiJW>D*y$7?uC#}W|H?WYP>v-A+o)!Y{`oPR|6DD)c+S)vbbtSO{UK(yU}y@iqMW@rQ;0;1Ga|BR45$QkTnXJ#(CX>D zXt8;nT{ag7L$&q%9{@y3s?VZq92t7-gu9PLC*`0RKYmf3yW#VV$CBU~HcGJjMz#6| zt|REM;7F2C-w-;gQf-{-n3eNA&Qg%}gje}9qObB-PTpFDl2|@MeDbP<5L6zZ9-9S) zP8qLZhDY{JTneoVJ4Z(01i?NI4mSmLs+;yd!FJ4j%+tcH>$Zg2?Xs=4Ef8&lv0so8 z*%3;q)CyhifKV+PX!vd66`z_gV_XdX@cjC~{5y@eU_SnQQ1wZT>>r*E5SYZNx}5r( zs8+__^`{d|4!1_6_SX|c$Ghw<)z|SxSjrOxs-lt8B>+g$r2~u#TjzQf!0y@#)+$}# zCJZmSK&tBd1S`Q~Odl~ECCu03qc8MSRhCjVXKJN&d(Grn_;0-a#;Ta%EYBpCLh_W|kbK`OTC(eRO-RiCncnYd z;)wf*rajEaWu{kV@NXHRYxUk<3s`pOzZCwN$O*8n7e^9&lXfaVG0~rV>^iarB7gB? zb~4B206BfKe<07s1@MBwuwc`CAQi}j7g{05!w{7AL?y986Hd%RYVW&XuHonwtEkVT ztH(j^4*jtS>rgI;g!tRz{IG=sZXrSUy7xVjoBZMw;JdW;phAWndHq<0L0%zHe*p?0 zd79rOE-n;8rG6ns_g{hW0n@hP6*>YHK)0+K(#w}DH_Vi9^VOFE788G>64n9Y5l?c@}~m{JI1PAP;jrTl-FKgJ;tOzb+Hi00QP zMqgDR&wG9xQ*lg6tRXgT;maql9=^W<4Ak7X8Yq!y=_zAi1%jq0sKL}ns=`&_ zYcSY)+=o~t#flYvGQ%5=N8~JWIV_%1%PW@4<}*30-f~8_J$I!2N0H%yde;Jf+W1j; z0yX4>BVJfyh$=y0g@_hBS>Z_*e4l(?5Vp{rLbnP9?dukpf}<7yEf|qlv1rhRqicO= zz5btH{3;Pma(@`Vc;fH)9>ll(wuYkfZ|&WEf9ynBAgz7mDusI`^PI;+9KLb~+qrz` z`#f2E=!&3tV;sR#*LfbEpE$()e&oJ#38?O+^PDJy{{{1+h)Qty(hdA)Y~bvH??mJU zCT7D(ErxoBF2uCJ)B-voX+f$5(2BJatd5~BE?fgUyY4`!Ysa7k8)PS5guO=>THgPs z^!{VzlB}o=bb@5z%Z!6AJe}yU3)F9Fs~y7z9jJ!=rVV3j7t#bv8*WXl`1Cj3&4Y}k zqo;_N)o3GWu{4EBt-jY}C28?I)uu|lg;r;$*=eL;aSY2IQr1eN+xA(u&_c>iYuW8N zc_?@!9*@IsC1YcvJw1dC7N_Mod??BM+bBKeS#eUfFtl*l78;$t-O*s{X<_>0&j0K0 zSTR1#D>meaf)#9}4#Q*JiBcQL%(k+(YDJ)<33+1V(T@37T>IPK43LbPfFTX!8)&tN zw(lNvT>&!-f>=dbPsCSi?)e6fhx_#nf4XJWp8}LbXe9qz$rhe!FN48+l5OAReJw%7 zqGGMZ_NV+G9MtIAAL9SQTl-&p-TxMH8(zb}|K zG6W=`Kp6-74oQq543V*+*$IRMLO`UbB!M6TA`5{*!RnByM*8)rEPbOhV4zBk|aY5z66wY+sb?;Apr2#TmGiDJfLXm67- z6Fr^Cg!X_X%jW6R-IqtwYKf9<0g@L>_4y}zDZd+LBF2abnk>GzrA>NW?WVX1XXbBp z9j}kpym7l$F1IWzm-;Iwm8(3uho8ws)HjL@nT@)ETqq zEtt~h#02hq=dZBoWv` zq!rDbQ#lXyMs)%!IDYO`6?4-LkJ?R?1AntWlcuc@H7VMOC#ObMF~Kn z@gODW=@d_7eFS{Wv|*<8F~>8NpMt;60nrwEM9ic|Xg57Ajv>{fR8KqT1!_yVbPrum zx6^VmX%a$K(m4DKgx@X_tR2*YHle+nXg_!-(n8urZA85F2`!?f+TW0BDMqpbWziU# zLuVf4APEZb)$l z-9_(+TO%Gr4@`t))NA+BRkTjKSQpl%){m$`3SEOb=roG8X$GyMU80W|DpQQf)+lQ~wLuvRkn3GkOFQwaqd(CbqPcO*y3aaB3DlK_ zqdhz5fY_rooLt;61U+V;mpW5_#LS^T)ARJQ2#BZT9HY6BX#|bytXHWu^`h~p?Sn}9 zPw|~xh~FaZIX&OXhOjNATe!FBS$bC_iXLLLm>@gLIdZ*r6?su&FZ{}BCi?qMqE z5Ibdac~JX_90mi}%DQ;w$luI4%i4Qzpq2*#WgpZBJvSb~*WW z12wE@SldwBu)}(n;xLAZ=mj4QLhZ}&yA0#K783U;{Y^AS-zADJVz3yAo|z&p6IY4_ z=*b(zI&r_M`ya)V=%v@hQPep~CaXGkmwjZm9F5;4vO-=dZp9rCdJQS)fcv}i3( z>!JOQ@Lo~~!;L-i^8e0{zCk^Ye}*?7_T z(2O)^o6F2P^GnZ#p240mp0S>bJvVuFdS3OGLOP$J$LMit@=qMm7HfIhV|1hJttZF> z@&M#{3YBZ4BqUXC5i8_x#SWQjEHDSkf#M=Mrl+H?pOYKpw{oC1N)(7fx=i-6b2D4( zTR{ft&(P=klW5xkSVxXSJSshV~-8p}iwK`X+i)j}&di=kh^q z45Z*s`e37&QnY*MkJ^>uxAd6IBZ@rkT@5+DNNj~(C=!|Cd(9$EUIZ!XtG!Q4XqNmt zeU5p&f_^W`^-JkS>MgFPkLUr+iq6IrW*0L~?3FY1YS~KcfbxF`t?MsRg=Vy-8^p!h zI`gP}o#xX)J(Awm9!BjC%0FtO^kc?2F#|K;x3r9|v=-B~MzQ{ixRf+8fzqI8Z>Q_E zOg#m35wyx==(L@f-MgR%vb0eMiHGEjgj|e=hFFK+ozN3HBxok)_(W*21GK{|l67>c z(LzA$Kp(%@Fpef!571rKrF4aLD|LfDSZ-a99JkPibQ5h6OB;SebE!RM&f8+7kuMJ# z`BpbsEnk;~a_#Bki{4HX@$@Nve}rc+bbYn{8WqwIYqfO<(%lIf_AZ)ABj^LP@(YwO zOxr`f8!nPHR=zeD?R|&FS`S)25lJ(w%V{({N%wmUD)VGuj6>oTwD&huA;($sw2FqA z=!cuo3qkbOeCVH*!JP3$S-~NLe>G^}fd2jZ_PL;UX0M(-x_9fE(WP^zj_GNsfetBt zU;B2+Nr?&ZZQI1PZWY@yCb~sb^Jb9|UXN+$niSMEFOXmA52cre^z^{6VcpmtC__M5 zlYr8YA3^!2^Mw4Rip_sIXAqpz!#IOBXRwh|#P|o%pl)6Lc>#ZDe{R5ECnk+8hI>tJ zpu`{gT)9Un_sz;31$Rmc68Q7tXXN@rqST)k%D;L>bzW&Mva4wpnG?vVi0sytY9gD# z*$l2w+rZo!(RQ#<4%s$uK#e4C6e<-;4CLm85(2qggOHY%S5_VxGqyM{Hz_5hq+8dJ z$e9+H8lpgUC^|#2P>w1lWaflCsu=%FZVj#S*L2-ey}B-jrj}+jFAtQLO)d^;WhGoj z%M6s88)|#q2l1!8$UHWuczM&F1VktL*kw1oAkf^fG@aB9I-JQGHn{h9}s?G0$IJR2)bN4M_@=l;tMZw5IBD*KSV;`V&r%>DIL-rlsAnH7%kYNAswrj*7-O z+E{iu3cKd|9ni9o7QIYwk=C?cn{I%WWe zbNY~x78CGSe?yRfz~}!uJ*3PDG1FqcA$GEyG>RJHU3VxWBh;k}i-;!&V~RQsR{lQS zx?Wu;1A)0Qeh_pYjX~d*l?>>C?oUbK0bW%Xq^aT-Eem_l3s-<9$jFONn<(NHg zOx$>msd8f)la~e{$vcS6>9~+Lz43o^Oq*7DGX{i2o1ciTu;U8~0|jFz75nq5OP#(g zC_2q&$MIzPswQE&UD1UVc`f7$4fJq@KyCxu3jI9ZZ6@`tnDxSW#45D}~G{%`T})MO<;cpD3t8C5Lh#d;IL70)a->O0VKist*!XsaRbFDF3uN zK`PAah6$QhC+)BpH%uZ-x5I)ejQ_EY$tfysDm`jSmUQFg4!gI(4Hr>P4E^}%kJrVh zkf#5lN=zq+Z4n0{`5IlKS5h1>+|!P(F(y#4SWc7VR=S>{wWFZ^FkJ=St?*}o?&7rI z9}m0(3<4$qiB8xkpbRKvKX~goE%KPl`6yaRle|8fV@$A4qP(@n^E4e;5BFyMecEF7 zr`hn|hjhEKiR{ZfNVC@5N_Qgs9>h;W*m}@n_&32l8R>dD?g-Bs?B_rM6XBha&nl=d2!4Tj z78*Nf9s7Y%3YFGL{T|w=eNFukcb&Nw?I=fo!#bAVQV;nr>Sm_VBFI-R@?Q+BN1h)m zc_^nMl;0h+xBj7$p=H2oly%hYC+-{g7h_z7~W(62{8bs&!G;6lln1H?Utd=dZ? zXa{r$J_I%cvw#6W0niC$6Ux<;yh3JJHkEupHjL-dhp3y9S-TDE)p*)-W|NZ_my=>X zOtT!MaGpG0SY}a|8aHpAQ!FzsRq{Pc$^94HPL`=gin*tMMnky{Y7RoST*~tfb>{i7 zR*t6?pz9#VOIT*PelF#HVOdjsf;r*PK~37)Q_T@jjVR#A`VyDAebGo~(0$0W)SL>P zvXO@A^I)IfLR0l)l&f{7?nY09p*`RY$C>IV3JK_Mn~H(4U9s zUi9ge`XSjtKO_ueoArr7Vz04HE>!L_XgI_kJB}%%Y1}Uj|4$$f8{42Ww^^SWhb#;2 zxs~UH=QGh0@VgY@wLlfn#hW4S^v)7>p79i85`7KK(StO=2vT2t55^}BdLDBD;p2^W zX}7k9R_ceW*F_ao$wRcv6Gvs(V?}dW@-Qu7aQ>iko5;~=G8ZmOE_LNKoU+b$WXcC> zV*VX)@PUJGfo~v31(3-EUK?0HtMvgo8dzq_tMy}}eD0*XS2L~fi$M>AM4?T?W zo@iNSzV)EF!`h<7T3gIaxc?3q)`MvGg2pwq*lKXr)6VW%YKK!ZcO5l)(`-kd-KX@; zS9H5tM<=NIMVOD$BI7v59Xe3eccU{0(VwXIEWH$czK&L-9SPcU%twR+letgSSP;eY zy1;9qb_e>I*P=DFM0*qV0;lawE!BE4geIcydsP_LRHhteOr*``XOyXrhpyd2~uEdE=lb4pA@tA@IaeB=|O}J_yo-N-j9Xj>_rWyHJ# zdYJ8rJE&UEpgeOHtwGot19}qWu0q%in7=(ScUL04&(Yh2vR5LU(+*)7^Z9|2{*i@uwG4xvw zm%Zr~l+cXG;x)8hUraOg36!bz!rX01-Sod=uKqxGYtb}C-$!@rb+nrOdMoOr!AjS5 zz_#S@gEWT2EgY_`;sWNt06B+t2>ZZ~)fvT&EusX{Ev}y##6!m5IY4t^28|&%T@htUI?c{us zj(POEX%PD9Eg;RN4P)gR+6HWtZ%~dlimnw~tX=5W{4fk_>eu^->w)fiA9@^E40l)1 zKLd~2e%Nk(=uKcL@_q_*JMRk^GMg@Bim>&-oxqE3TvKp4XA5r%Bgxuzn*TAZHGufq z+QkUxM?YVP@-EbWW$j`>7Dq75Mbz4JHMQ0{BD_7)h53yn%%{gFRU_-W^VR96fPX!k z^kcAT8{P2$ZSynmRuk%H>Z}d)-_-9v0mgR`aIxy&FDTBIA!;EGTW^6*5Qiy7n-3WT z;O_>1E4M%0aYFcQDm-lbAS=Xu9v&X<4(+(iE;7G|I!RG?<|e0Y4D#_wJ>^ z4D(sUJ$t5KfABn*L|wFXTqnq2$20xrXzIw2si98vO^MBLL=A>7!^UgXb%9=5B;Chv+qBCE``l94fXW#nHT8w;d_XmP2KT44-MaIxZ{65+T_e2jN1Kx zJ=1%z`$A3kK0md`aVf^Lp(*t7)=Aiu&DoA-TbAu-Wj{Jp?cbCgi*kutyOeEbwqMzH zX8RR%lR7gnRDH(tK3~<#SvQ*MR`E5h2V#IEht2}e53-|m0J0nA2&K2&WpM&9y z@U{4t;(TlOf4r8TV~uXQPXD)lcb#_;F_NuNaffG`{IytEHp2|NOS zH2l%f#jVYj(AzTG!)4TGM)LO;Z3U)EpLnO*}$ zdz!0zlqFb0eeO9O{Be9X33GP_fZI>%^wj{H9L(kD|cFvPj18qeo1+K1|{W;vg`YZuXz&iz&> zax1Nmc%IgK%PHTxNZmKB)$XAs2)oB~Bi&NlB2@_9_ta@};^e5|EksdFg%9P>Q34c7Q-pxnN%u)aO}d8hS~bM86AS>vy6T=T=v z=_k`zZ6Wr3?wRZZpoi%aeHq~Nad=(avd}Ll&t(g_wh7!5)mfi?-@|86t(x4!<*R=F zM2**Q9y22fb2ysE->P@+=d$$$;Fpx39|i2Q$K}qwT>>ysz7GENn4?!Yf0q{k#8LkpMmlVU_gF~ z@Yg|afuHYwU!zOhdo}xfnvN^%gRKBKce#uThTJMroO{9&$KB3$BdkB|RB-dyN)I#v z_^kJUBtEO(lYH44umsJ3x^Y) z7!HIp%?<~`v(HkGbMc+49_I>A4+p~2{|EIrSH6L8AUyCB^(zPm!V7*uJQB_;qHrMmqVRe^KVcu+@ErE04}<>QS?@mq9SI8QYxoP?*k4%F9sl1QzTX4b|5|qe z*ehGv4xsZa-UBZO{TG0JwKet>8uo%F+wU;ka;)2cF2Dr4EKb|-gk83RQ)a_(D0ZI z>lx5L0(>s|yi+fBw|Dx3+x$4^bxJSLkNP_3j8Y=3)vY~SZL0r3hullqY&WnDH!2kWDx(~06Tv>2pziZ#=|{-WpQQxjLz<#rLAlya z*u_JkZ&8N2mqFgFx7p^~H}-5RjA9Z< zZ+g1Je>2wgO|-!H4PED*O}ouwsOuq`j`hlCPNDwB?`W92w>4)|gwY&!fkVA_(lk$3 zgl{Fk{!dDdSPr}HWg3G%>+6=?cz5ri)(C&VK3`Gt2b{c(FF)Ps`<{IN(n+Q9(&I!K^xE`2k$8(&u$abGRYUi)wuDAJ5Vjfz22Pd1H)x2Xv?L+)c z?NsM2)v`0_sk?iYpZxREpLvGHbC};$o#l={oZbdH!}Y_?dk1s$R;2X0bm32BZU%l7*SbZ-ukJugf*> zMY({tn+?xi8_NFw37`+igBk3NRn+9Q@FxK)gW);qV3iBYVz~Y8_M_V`Xxl&0?ir1B zcFTA2{cp$dza5wVRl9$x?oHvm(Q_%k-80WxZ;X$^zip_uG+U{a0~7uF1h5U*=ioL5 z=1L;JRnjUTPZjFDVq=;!gupu9@pe#hQs zJN7CY4IkOzr|RYEUhR9d<2WU#_oYF#zaFE{#GZa8C1{@^9`*v?H)&;*#cPIkA#5vt zbF;vCFUw~SZ-d&1LcfgBwltaF{Jw_Y)d1>E4v*7wSOb{ST_=I`%NJEDZ#BZ#SLa6RWqxhpYqc*|!U`nBpRyrJ)!@;`bXa zmD>P*az9?JNA}7n%+DX5k z+Szs-@1YvdTNclULgwfMaH zc7V?;?`d-Xw3hMz`hF|?9_n28Mdy2)alW@2XZU~Nol5xIjq|^8Srhv0u4xCQ$4K88+~rOrofdu^rG40C%P_MpQl)j1R8bJF(EU+wkP>P&x` zogcM=ZpyaL=B*RX-#MuBR6d(yyHtx;e+QB1{9QvQ=kF4Rxqmm&cuso(jb~lUI#sP1 z{I(nWH0Yah)-7@`^_C}W9V8AZ5bGj!E}4xwW-F@PvWufrvMECLMq6&Pp+#GJl}>75 z>nx3sUmfc+tiQItYNsXI`b)lQ>md0ycwBr9e9Ct&V_R+uqffZ>e0HIeW}B1dOn&F?25U(xwI)ALo%wBVPqkkehIqC?PTBeHdAk}XjFEk}FT(c)e4oQ(>+b38bF+q5o6spX)H==m_z~=~ zNUXafRTb|Ga`r4@{?@tmSr>h$Ge(qk*-D?mH)YsE}+NH3Cdh(kjwcbD3WPf`f zL%ku{OZTg{%%BL{558gcx}nyPXMvZ2zXD$XhwXE!ldtpN4spLU?uRz;`+;_&2 zOw5}0D%KCo0X6_fI7VxyCD;0WF-oyV^81EwhSgWK`y!tTtL3G_nmUJ{Mmh|3cA1kdHRPpa=mH6Wb06YO&i> z(=#{hh6)jy#Kx_heAXUK)JC<;%!-tjJW8=J#J-T9+cEO=;1hgX^x|9lH-VNlUXNU zsr{idBq|*v4T*X}>p+94x7MLHt(UJ(i?1Ct(^n_o-|o-wZOrNk4HyDoRp1)~_<=D% zDKHl>;W`Z0VX6Xd1~vjA08)l;4B(ghfR}*7)Ds8-V*sywxfaFL$%D1&*}kkc@_>Av z+M>tz%NG=VNj|6Oi}G1T_ky+u-6x-`ZSSM3W{4-Gi2;oP?SXhhKD9kH)@Nn4gvE$q z# zpE|kz@zjpKzN2Ree^#`-2EB9*dg&VU(lw;ZYxqY$=v=qEYrAwokF5)4bnfD-+9j%< z6jkFy)n-vuA*vRNs>Pyekf^#uRAq>&WKq>#R0T!V6QUowqDlmJoaXHxj2Bh=MAajr zs!~*?i>fqHl`5+IqHnNHrqmAatw^3C+p~Dmf&OYRv`@55L64?D=2M^(cH?^xu#_(d zCVvN;IiWq%4%@p7vHjf#WX{PNCZ9pVXD|%U&^v&R0eS{v^b9h21{p--I|P^l>;aAf z7GQ$A11f%#`bOj10~i8K0TuyA0aI1yC?IK$Q^iMB#d;y$F}sgtP@c?zl-|*yC{mtijX(Tn_y`B}7fZC1VHR6PdNi6Ob&rHodEFmuSJM zcKUuu{=oN1a-D?pEmf65k-3 zs}HBy>FbFqWZ2FwsBGtCRcN5S%5Z$&Ix!>I)w9-9>>2I3(39!u>PhkVJncM5p4Q%2 zZ;ZEvx4Adc>-Cym-7CH1ZCz&_31;wL7PmIl9~iSKAxKy57|CC0|0%K*UP&V;)JiLm z1%=t7Ahc&16-@PqzAX&YiO8{&LPj84gklS*peQ@kFQcH&V~q>-%_sI4-P*9nV*mL`Q_bBgOph?Yy&Br)x@bWKSK#kaY7Nc@o4!7cme=bq(L>U=X! z{fj@%-7d7Yps+Z!wOvUllO0yOl7i4}h5pIK_2MgWEHAfSe95GwxLzA9zRDZN;o9Kb zl9GZtF+uT>UwjEZNX(at&x?hb`N;2WZ}Y9Q`O=Uce5p*p7ZE{eiZ3l9Lh`D!Xt z^KxraQx#8JKUFH8%C`QdJp0nXla{7<+Emd##j~$X74w7!E0*MBu(VHBEFzJT6-%;6 zR4fxtvGj0QRyMM%R3&NR6i>3v6LrMpi8=zFjGz0jB0D2PY#&%MZE{{kAg?r#R{@lU zR$Vq_+6<;;6`_(qMQ&(XAlF|raPnEACv)_`KyD39&MPXe znH;RhtsNK~m=`F^E!jSF%msZa#?-3tiD{< z(BM#27AYAYQ(WVv?2??xHr+0pMM7RnlTu2u+r-Qrtb})9O8mm4U9eWRP_vAZQ1d`` zC<@@HZdu*3I0|!$qgo(1+KGx^I4~s%dqgKH2Ei=@*_1JFe&u|M&zqTR|F6V91kIbz z9d3U!D$n%~ae1L&S#IS#qJmJD!h+C{v6G5xJRXFWa+5*>+^}ZN^6IQTc3^h|4&Xpd zYh>iGK^ztl;V_;#{_`E0!?U1DKCxW{+lzTrS)zs77ZgdTf}%-i>*PtryI@Q4@=#fV z23Cp;QR(L4R68SsY(H_EUCf*BxSYP2=TJK(l2p1~()f=%E2FW;<{?AYTzrCqAC?;r zHcBm1TBhLxEk`H(+MW|ZgN~D5-@`{hmuTDNHO4M5H>3IW*m``wy+hgsMxFJ2utR$1 z3!0gc9)qxU7>3#GiwLh*(^Pj5Q9bk0+|GmFM*R8vB-KtaPeCIo- zih$bqv_EmN-kV6(_oei{L^{=%LUkz}{`yi-V23lAq~GD?IFWF1RTUntf|bo9x`uu< zysMmR!@gt3GGCY_?Wd>zuY7}W1cktB4L8;e3fG2-g|~#s6#HJ+-n`dbujQQxi7cuz_FLg%Pg}JG)uh?MCnMDLAg#CmbgVfyl$AE9_;_}0THLujXqalRfQ{7 z6?0W^^jqO66Zl}OJ$aBhbtEmVF>DyK|i!t3en(T_uc>U#Qm2BZb`0hL?F zgf+a}Kl&!)Qe06QN#vu7=Z-~(hbu7t zH}`Jbx@E)ey=&LJgp;Eirk#5pe7S;qPW~Bxw)K9vu?}vGq!-U`n8r_g^iRKjx%2f` z@vj#@d}q_*hwf_nzDcxv_fLG+)(`28*YM%R4{uydZvY}p?f+OPfqBYDLr^syW&CET zXOVZ2Z|Sh5Wox}pm3@TdE#b$#yA6t7D|yi)Z*|#)#Krc;_STnaBrT(v;T} zCQE{gLSzZL*-JL~ZVQo}p69*fw#bGk*`VB(N8XIST0*+KheD(?_^O*+UES#=SNmpH zklAH;a>W(ZWK6}hd{XZ{H$=*V$$SzI6-5aeIy5qLn4+MN*Bkakz20cFQyJ=3l%erb z9aok{Msn8B+Hm2OGh7Q@EiSIiWw?mzPvK2|?C&7cjJ&|vkwwuk4%gO}UfH5yt!4O? zQ3*@)YZ@QOYDl_A?@f32_N3te^=?$x-BZ`I&NeJz1I>_ZsdYAb&{M3!?B_=xlsy)U zFmEOCs>r#U*@H$iw7NCw)XN(W4JZv&#N0Z{mSzS#trVP!VgZ_JhtKBY%q&y0HY-g+vA1@ z2^PM2h!XsH zbc{dQ{GavH4y?SXWK<#8OXiXT_yo3n^+DecZ#Qh%vj3Nv{7m$W_s=%eL1d6lEQ*ei z(?WZoY~wH-+tD`eN?S+&v36Z2lb~{<-EL=ywtN8L=bYI-QVac; ze!2>gqp~Cpe-&Pz*Q1lZm0-*Tqe_;pJTR^Pt;{9(Q~c)x`?hSD_WK|DKKLs0O-6=Z zEqZZJB7VCCu0KMtnZoP+jlO6_*x`~a$%PU~& z-J(=dU0t)MYr>QfNzl@+#yjHmfti=Xd(XigWInkT@MDM(SV$Ifq#oD9D+>_`3Jc+Z z0Kf1~IyZ8d)Ti|{R zzuh!brj=%=I=i~MSU}eQSCRxh;Lv6J5ZC|lE_af2^nYwb-O2koOt@{_3moBYK-f(e zpfEhAaGxXcIq1hucsbv;6j}yf+M}CuP5oy27SqBL2@l2Moz0o40pV}oyD8(C1dPKW z90a`!6T6|=RaHHAl3lf0&z&T8^nY$R=(*sh=aNp#5WQ-pHS;Mr?=`%dcJ8D+k(PFq zmXc1(mk1d>ajKyNBfQ{_XqpeG)aOiRX~hUorL{PaO0OWVszRyKYp4tqwhM|bkPnqm z=q2&TE%ic6B5mm?Xg{lbWdy8Nkv6H*D@a#WTGDF+O`dAAU5p0wJTRwSBx?PS{!ft? zzE1esA$Y!+7uS*X*7f$+ZGuIz`pNmOi#!(wMu#T4uJBwDxHPmtT40^!y2i60Fe7vm zxlz2qy41c-d_dZwzwZBlyeqzI{m>p9=q~Lol_XTYX{TcIQSRxcLh?0Pj96i1xdkJO z&e&!zdxD85k3L~(&UdhRaoFe$hfFUznkcn0qVUrwGGHdz6G)~{Aoc`mj=XjU)iW40 z5G^QaHQmUnSs~zbBTA!M`oZu$EldO-@6w$V>%C5Z2j&4>I>mK|4p=XVlNKClxnbAh zbLSt~{)e0H-nVnvvYk6`U3Oub9Kk#u_1yHfO#cU&Oy*au5A4N{X72y`7@mjce|7a* zs^y=6>iqy(r=Smv^Axk^tW?+t5i1pQ6s+VZ=U%`sC!5HFGXETpEl3myXA!VU@EZyf zg+ir>Fr%9NpE8Vu%9n+oU>Q^bGKFwTi$mA^E|)k- zqdMbou*z44Mc1JgaSIWuK|cCGBtq{-@@#M?qSDbuI>>%QC5q1%&DR}-MDqb3%l^v_^xwLzU|TcBQLTk2fuy4`ue`C0I@(6ONU zvURVEg!DW;tVeY5Kl+b>6hB2W94#=z!HA;EqWDH$(4ChTl=FgspK>sd(;|8Yd7^E+ z13Nmfe>WWgqFrvoL{)Nzs^kn+p@z!POlk5R0p+E}iuaS1D2jAkYp9Ohb!0lZo-8Lk z=_Ex!={LQ^%q~r7dV*pxvo~;mz}M5=4ky(WC~{=X^h_vcgS9A)(~Gi}SnP?#Ye0i? z42ya$lSu=+5G7tZSwnoqk3aPFjt6gE^$6bQI`O+B$A9+pp~tR>w6>m;nsxBj!=KGr zaPK1EsU*G_Q8PwpQcMcT92I5aKTNUZc-9=hT3a?Zm$dMQ9RHD_*$ow+G? z4q&mfX?pbfD2e*1i9}aOxkshkqtd{mQd6A4b{wO)9w#u;-o5l!@#dla4qUq{a0GYa zTJYxw4eJ0#HxKE+_hhvr!NRy49``2F1F+oJP3;0m3sn|VR{&W+I{;j8V*`a3SB*Ct zLID)l3{-RaK@~)zC4zu!a(n*f1l3(01Yt`!2(cQ1j-F4OUM}|dydDp?rKaNti5Cp{1fom%u z-@W^g+W)=r9F>nIGR0vKF0#^M!Z|Ai2InFxEheV}6o8x#+LqyehiQ7;1 zBN-9gVkn5`;SuzP!gr84dj&x;!ugd-&T%Lvt6-I{7`;$BaE+l!MnPevv?5j|HQNa_ z2CL?-L_{Z1!V&so`WvWp@1egTyKNnKBb)EPQ6EhGMlUt%lzvoaZbR=)9ZxxuNt}(^ zc{8~I)6LRv8W2Ed643S!hP5Ke6%0*sd^nt#e}44#FJ`49vp`z z8Fn<_pUCc_L<|Txu5eU%3LTsSlP!I#$)oqa`f7Wo3QvEM+jH{5Co|gt$~N~cpg2MK zVN7@mMes?(Syy! zA7YbzCJOCC7^JOH@!~w267hKQoYaL`?K~gJ(`*EamYuW6E2WLCA*UsZ36pFyT7!KM!$8`OAeYw6#=k@;wsQ4ME z_%ZV9e&Wx8ioZGPJb3Q&)Rqd@Cr)(Uw^Dgp!-`?@7 z?>>m-#dr4prVp>sH{5afv4?hzuk(_>KbN`Tip=rfy>|DmPbs3*gMN9y4~5ZS!tDe4 zeT>P*(UGl0bJCJ?m6Dtq6%MFT%#2T1X=BR7o@U5FnTleDB&^z4%*8J8i9U>@R8{(nF=l~*Jn%}4%%Iu6H#$avx)~atGG#Lnx$i;1Hi!m zkL{)0S8pBy$X08(BFw5I445MfVj~?mX%y7?ru(k31bEf;z+dpspsIO-HT^BEU;<1~TKEq#Tn_pgE ze)d;?nl&Ty&);w8xfPGY%ka)ub{snSQTmyNj;#;8@B&D5Ciph5@HEoULc?}g!#w;W zGH(IrL4l^6VBVr?O&mw4AjdP#$C032ZnFG08V|}eop5zOR|GstO=8QA* zL&t}$_)GlSBXqsvGO(HeSd9-AqH=D`K9rXW)q@O%C4bg-vR4b(c^NB*=6GJ|0CvYu zJL(5vLZRjDjT&diSurLBdWkg4(7%7iiE5yJ`1xxilG< zdx{&dX|Bkl(#JilMGv!S&#C;tnaKwlq4dzSVKxV`mvuzUbwo5f(#>)a_MGF-zMo!$ z%1NVuUZk(3zw|J#<6$E`HNM=-;9a;Z+kxDd!b(k*7ngd+ddJ3(s$Y}~mU4Uxx&<%e z7t4*-Md}i5sqYT70dM5j$}6p_)wSB4zTY}tbvX+FK6d3rgY*!MmeIq|Xq;k7pfswY zh##rYjh12fG)d=RB$9)X2!#;_qLHSTE!fgY=AuOQp+xSX!~oVLn(Rgtu*Qy&UAGf^ z2fo_~jPNsn@iTz&Gl20oy~ts%gUmHNMeJq~yII6;7BzWtfq2woc!;NY_-i@e#vB?; zX!H*Fw*mI-Os1I-vrBKa*$>22ji|BVCrMFuG2>Kndw@J6xZ-l3hB>DL5T3vAnxiit z{Bpsy>+Z}PfB*f=@w!x!{FV>5#+g z5A-994{mw|Pn@^)&?9~|ur{`f>^Dx^iVP&D|CK)A*4H&mq&n5fXPu-v|^Xgd#`uS-|hrQN( zAScBRpeDzee)~;N%PPl=K~%y04yNG_mRxc89YYeFr)rAZ$0x}|MIG` z(_ds%jtpMpH3~2HPAQzjUE{qrIJamac)fr3}#`gciGI#ZkbSxtM^~K=OmV1 z-PCjQ(!W3U+y~^%Cl~)>*Un|PY{!@BORu|V`Fjgh|KtT&e(w{kKa}~e%r}|8X4;;A znX7zw&*4Wlf~y8A*$1J?T0YKJ{%egWFCbB}5HZDbDJ=2|Nde_Ygk}P_%h?ryM(THa zbaN5NTnD1dK=9qy)z!r{bakD4x~mJ?W@`_uZ5vu+lr>pzv)*fc+&8li1W`)yO09LIP{!BsB+6rcyFJ&X zRBtzgfpmd_hJtR;B+_4}?HN1uZxrn`<@Q=7I*uiS{7HI*|mDLNS!C*ua+` zd9s%K4gGRg?&y1X2aOLGqQCHG@pQxBG(%lMHt`TTVhF*>elm^jI3v?`2?hi!6OaIs z@t|kLXQLdK5>Zf&3RqYou{G_ZX<$dG`W_T03--XrAIwUDWTu#436Blb@l{XdKz!K6)gl>E?U7v6^Dsr~ii^}zdK)^fkP81?r+v{ov7s2xuR7kcOmS`2O3QV1{ zF}r%!(?{dDbWd*|C`!5qmG$(b0lK&wh7@4SQW{RbBD&!_ILIFWhg?;mGw&zu-N@v5cx z6>OZqcPyIu+dc1{Kgq3SysIYGE^GYRx|v4feB<$Pm(P1|zkR6|NO?_k^sKw_6J6< zesj+HE$1}JqDCn_XvFqHo%> zl@rW^654J9BbSUQ3al*C%k{bPJj)DyJ=d(iF1#up)Q{;_S!lqM$pn3#^+o+#^;_** zn}t_-jkj@D#Uk*$s@Y^wl2oY6qAFp8=!orX6(lODZn#A_j$ZT7Yh099-S8_*L=fbN z$cY_fpvxn_W~4vY=!1ofcwiOMyrSf%H> zU3yC*%cT_(k?ys>`$rS*0`P@@e$d`vK=0{6{<>5Uv^hoBYJ2EPWp0a4BAXVc__Izw zeAssQ@H)Xf0vwHd(R$gq7bBNUo7&FXIa%uLKSsB7QD4=77d58;Z@U`{aRn~q=zbtB zULr~ysrVh4`q8s}4{v`T|NX%+1$h-h=l5gqfy{Yi8s4(+#yjtz@zxfI4Zi^Wa?m^l zUb7GJFjJ*;U6JR<6izOjQ`lr#Z4s{yE)f=5z+(uvS;Z2sh4YsTj(EeCT*Nhy0b^;i z5CBX-v%gDoSzOM@;K8M(C@&lVN#{o*4kQDg$*^DebM%1nEkmQRw?8hbG_V0;cGM`Q z>_>D`<|B%99z~hRLK+))oGNm9uoJkETH{X6N;0 z0^IzZS}cJt&=9%_jPk&QgYIm?W-gqrvQ;=@rzN^=q!7nOnCm3*LU30jY8Zw=eG7^2 zc(ZBF+%=n~taxQ(=3YE%W$lII#;n?!`4C@wWqkCskrOv>%(M!f4f|$a`BX*8ffaLK znlYTa)Zv{|Klb|4A6g`}cEOlSZ({2vbNc@(+#nnQJ@|U}EHXb#usNq}te+dxX)TII zXtTgGE)K6itHaIcA>mo>No^n3uDzzcjk?3%h8;F%*bxqMgT+CP!FkdA3$)4ZDW1uJ zdBTG5&CWZV4{;CL9?IK+pCCIN@7P?(je@#c5At*?z^*|_#-7g~l+^7A^C4G6WyO0hMgN#^EzJ zE~e=UF$718u#Y(n5UR7N0z8Hkr}U2c6iV>;_CupGzxu2v^T&r@z@rcS2@g5z<%&c1 z?)c6)Feoq7YvZF8# z7|v)u9xa>p;Lsy>B>Qq2eERzNaibtRFbmFSD^wPym==ZYFz~Z0OraU12J^!@lZVbC zS)DOu{eP^`|I8`$iJU@5enO$Mr|C1aczF5fn~Z8MB*~&I$h^#p0e{d>M5_W;r+}OG zy1gzhCx$p*3_ER5_~pD9_9~7TVtecc!)GNO+ep^VHu(a$q)9ez5K**SAWYxVH+zj*5C zKL^wQx%L=f+vgyAD{419q7ac~NkSY?g|Ap5RwPSQ+sbrjr8JSdFsei~q69VGLQLnz z;EZXQ<$nPV7R$du3H7YYvpSg-YkdwV()GRFKSGA#<>pQz^ZOWIbaE?~IQb5@TIg)e z)IFEcTA@ckRQWY9LJNA#7{x}o2}oIPkTAeUq9kf1BxwEr8Wjz^33LB!D48FPNjd9^ ze>vYQhp2ea~@w9$_wTN@;FhA>&2dUeq1i*fO-Yg@~}#m`VJaim#32FA{M1Z zd0QchK!{Za#K=vVoSQP4PML*4c~p`_xq3>3X!Jy1~Wc@86QZm(6C0V zY{IN;!mMnI2@gAKs95XvVGk?#*3>Jx>|zNg5v@5hj~zIy2C%OJj$AUO^f z7y-h@!?BV`Y`sy+()90`xS)IAnfYoW(BX2dgxf!~(+b@F!C-QrU_j{ppSIdjY#&ft zMWuNhT5cW(m72%GV)Gb|m`8um+&45>(<`Gwv+#ldrUaaO6KX*(BEAe6Xaf2K9YcaM z3KyFZCzz|pRIL82xc`(z}Q5Po6Hp#lO^JMZM{RZFw|(bQqbtY!FE1kw^(wj zXUVCaWkB^TaYgxQ)!f50Gj65XIXX0JZavm&KF%s8X`)vQwwPp1M_oATGF%f}GhDn2 z$C1gJ%}rc6HTzQ*Q^z^?S6$C9r+rQfimPWkk4wnxt$QS)x>l)yf6R z6mBi|M^3syd7pb9TsOr+Ml=Qq8~F{wGyIpbpzyegf0w5_`93u)&R8WEr3Fy8HZ|#_ zSKHuR&K`Ms4720GHm8?f|JWE6fOi%bkCH8cz$icPt8F(8L=>+Z46(REmB9;c2W#w?4tq&-Oe>vYwJt5ZU=5vI{|E zM?Q{yl(@XovpkoX=3@ z!B*%1VP$UHg$(x2FkiN54(9yxk~G$&T$rZfqyp&)D`$m)`0Q9@O7{`yfpLCKBe9qTDv%e2D>~$V!ftJSzoO zQZO`%;12x}J6g}g*>SucwPK=sYRq)$U3YSp&!WE^*%WXSc}xi;ki@*uZG+9L1Z zo|Z%>vD<9r0s)*LvZ`t2f(%tzz0`gwHZUQwY*DP>cx*PE&eII%3MX-Pk{w9H!*>Z$ zxdRUeM7Ag_wPhxI?F)6RcaX_@qrwbf zg#ez8>}YdPDiEMM^V2DRAH!*y1A?>QX{X(3a);t>xp8sixd7F^LUZVWN;3MO8G zc*TI?LEO&}qQK66&r{vK48;6?@3$~d*YwOz&-PRGud07ly}dnC)ca+ir)qmkQ6Jm_ z;YgiW0kJt$)DI2E&pwxA4-NKh@Z?m<~Jdtf9s1kFX<^W|xq$}_kf zN51*VnUn5gjvgM#zIJ2?`|*)9v99~ECrOda1HIsNSz=Y&zYV&m6hGV&qiO`o)1+jF zC6UIlgCJsb7iocEM2V$oNf22E0v3W6zOyA~urns7(mc=k5d_y42Xd}y;yBI8gMF0J z3Q8-JlzGZBWwpX7VqdDGLaGBXpoYKH|1RfY|1%8i%Xun7l|re|3Y%PNKX_u?2OM^> zxR!+-_VJ$S{rFi7^I{q=6ks}u+wmTDh|b6&{=2)jk1UGLU{@Sm6fnpWa%6i9i-TQ} zoUL`ICzRTvpoj1yNS+_u9>ijmD^_7KOvG=W=|g=~VVtfCG$9g@BJ2L&GxUz%A1&hz zzm~lQZ}#dVt0|f~4`*c`aBovOl|T_^Y}`O0GZaeLi3H1kfox$LU|@W86{<483mKpb27I`YCmP^R6F??M z@f8RcOP+TurS-|9Qr~WmKXJmKRB8{Jq|QL73rMnBOsZ)xWi`|J+8XLSbR!!28XEaz zM|t~;yUIHr`vaSxR&)RW9R)H{)V)INJ(G@j%NR3mpX z$CkJ|qj%-s$+NjgW4<|3%#V(aPL4>8s2!W1CeE;?hG!*bRZUAxPfxE|#GM~rlD{&4 zd-C@DU!(8mV@ecZ-G6&aqDYZ`*nx>68x2Jpx#1j3Gm&~msLw|u9K~mtV4S1L6N<}L zR~rm1W~&7$?r(eC-}ZPPr5?`*qhzy!zUc)0+#^VAh-_ETHyt84r;v>cj-lh}#?_5< zV+M2~1Gp_QNhxR+IUP`AW&7 zW2xoDHMK9#k7IONS zBk834&NeD+49iwQN!>zz@XghC*SWCx#Hy$fm*fR(4LwAxz6X#iGO$tBy zT+b4B)&+#2R) z~*<2wY!YF!qr~N)jyLDB=T`7-+=NI)esM`g9qiQ1sDgk{+B0iO3;a1 zMC)H&mqR%&!V!#gOW4)@rRwSk1HnK6<5|ficFCax{T%}ixc?GP|6Eqr6fTpjs!oUk z&oVTRa@iVuj_0Zq{o@W%^*gZdJrJS#1H%o`t%=fT5}JpWp>>EyooKV8_a~Pmm&V_C zjO4dkRdQHfJEN4R8c+iXk93_T9jXVN6#2}C_~49Mf$7jmh3^2$2S|`j-W>4FFwj?5 z51dV`H8#lOx=Z8t0zKuG)_lPC>T70CsX&@K3J1wuz;;H;-K4xZlh9V}6>W)?Pr&Gc zE!A|>V6XC%t%J5jnELT*a^a92VQnxf;vVvIp4I05;p&T@m@;Y3$>j?tFS_7I-~7+R z->uT!-izKdFS>2|X_uTa;(}WHoI=aP3oic6{6(){ ztKV|_wX-KSH7%(>dE3eryDqu(b7ENoaon{7`Yt|nVm#oN04om+tnlA>SRNQy;d^*k zi%1+@jd!2IO2DyFCw8R9D<8|n1e{ATuKaU?rNTxmSY?KcFKqAfBU$x9*MbA)`Y4EfAyC{O#D z9Nm}6(WX~>`PexLn2l08g3^&m5qe%^S!8vDiF{8$3UwGi&6LyLV3X@cWM6;fJ~tw> z9>3wb5xLKe$fYnz=Z?7%m){$2mOSdUFW`rev_O?mljQ~aK)eD6Yq9fQnqNNh_8-fK zm%TLV>8sz}&h0q*%m?M858sZo&zXrwx4gLR+?P-Y-&G0679+`=89LwuxqhHB0H|!# zBbobX=ffaS6=_f(5&ey;Y%aM*>z?U<(cukdL}0iPzS2> z)SJYcq;+bS+N~;Sb&^W6v?9`8i>-uIg%a^cwzWYM4E}9dlF}j<5=D-}dQWp9n&u>Y zsn63gB}xlKw15_&pip0&B%;;gIuSod$kAx0zBrdgchDPXnkHwgG&hN(2XgbcbzB$M z&2d~OedAVT-eWF3(@qAQ$s&+ppIWGMYnmlX97RtbS@_)BT z0YnaBh!BKs$2DPM>har#0uw{^b`6_36Y{|mramf=ErXg|uB8dlr}q5e&*81`a`ml_dJ4uOeO2WtV(%OF_D?6*wO3@m^s1UVt38)9v5E z3dOt3>oFB!0r(kMY1R8RcbLfVwa4&%3XTij?oiyhwYME0P8+Da)ey)>i_}o77#JEI zO^vcf2S!C_P}8j$f$3569`PQ-+iIuDMDbW5+{`trXK-hzW5Z{2XREWr^SSxzlJKS6 zrRtSog9{THG9Y4vqe0W!+CZ;t@SsFJsu`B!XkNhTA>%(+(saX6L%~2G9I>NOoHey> z<)~Q}FP$j849Kd40QVk<*S|QW40+K35 z!<=E67{u^b;+Uvu7?LE4H2zM}K)|vnF>c#&^Hd2 z@{Ajhmg2GTJ@IHyPdwHWoiJj-8K3q=p+56R0#MQe=0A$Xwc{&!z~c{Ceb(yc&YgH^ z-RVn}3sy%1tD{A8Q=U%|-NcK7-(v&@G* z@$y&yyrqNr)!~tB>DKguQAZx8JOmt#^*hLLh9U~x5NHSvLoLiOahNnr8?Fxtv;^fqkQA>1WYN8f zmF68QD_PEkq?DERi(QwY%M?1#HVE}fqn-~8WrvHy74nH^if6MWagH)eKRa*%TEH$A zmne($1%Vap6(R{mFAH22T*KZh+$^tWJH=-MFSD!XYy%Tf93Cp%cmEDO$r&P18U=61Bp+>RM3=8;~R+ z9CI)X4k?0$u4%|LH7gJdDtJd|O<~latRUW`gOVH!rYR{zQ4&LIT3Tg7s>)!PW*C|d zYMQE2;(#y;V}nSmj!LVYXzsIVd7a!PGjb>D+&0%k++8B`koYl#Vl%wcK%5L1sDek6{o)Xcc!>9$Z7%ITO&8 z0}=Za5$DjY42va&5U?i&@Mi{!idvO91yNO*Rz)TfO(ZpF<8wh9pCb~Dr4t5oDvNQb z{ltK{2_5qqzWGUXOIiI4$x~_vosR0>>gk~i-Q_z{nL*+5I{GO6>++2&+9pj$H}s4@ z`W>zGA2O-BjIh=5UfiM5w1ZO-0`)4a5Tt5-K`IPlK&P(?E2@Y?4!a(QWxa6Zs2`3T z_LGlq+^JQ@fP@laWc7O@Ww!%a8qTmM<6ru0YrrO^_L-w&fsNsXA&W$~kSJK;U!0S% zz}Dj>fQ?UVln3bSLbQ-ysC>w?M6G#Ika%9=8A(=2r(9ZALb9yz3@bR6dBopjWZROu{7UM8 zD56$&B_J~(I) zCem8c7Hr~W>}DGyc9Jv%i>jouJ9-aNOz%OMUYY53#}l4Hf>JPkU`77$nHZrUW`3`d z`7!@7y|U<&dtUnrWhRX{?T0A&Nzb$NQf7R4&56Y9e z={HUQHXNb~8PVaD1OeEOy|mT(2aX5m|^PY{f^GXhe{l#lON;3p}mJ)fkrK z=g~GYnt`_|K?wsz2gizI)HVevaUD?{KbeYYBs;=Rdi+6*FQiYcb^O8hR&%d;w66iL z)hfa*BatCCNDMr>>G|2^GhwO~%I^|glPRKTh9Jg=+hRq!2JU+SAgE~w8rnhM;@!q1(pg9n!>7at7P@0jq@CC|y#xY|?FeY2qH;d?HDGDDiI+94U# zQNCpNZgg9D(R#j)T%-4Ime8_X$BblQB&mzd+JXohJi^dY+)I4%Jg# zPcn8V{e+`MAt{Wm4<(aiL%gp}ji{3cCmE&T9P^yY+Vr;-%tN(_*MV$?ZcKjAuwxy0IF)aAS*b$7 z#CCiLlKZ|qA1Y9VefvmmzqinKpr^3c0*birciUY;uh=)N1z<`VWvF&{B#E$7E%0wh za~JOzNr5xGuxx>w~Tep z8FSLA?jtvxG7NoCpET>o4>)t)?1`sbMyzQKwkA@SH>oQ0igP96R3pm`;YM&=TWWKP zPNiy+P07=e%Tnu7{P19Fq%}S+GA>>cOWF*h6!~F%v3Q}j(6}gaQM@a)Tis*tiG33M z%Kj?$_o|Omy{TB58(<6w4dmJkhZ|>1;?C#xRQ-!RY^r8hXECxTk~l<>!%1C<`Yd$R z&nU^nhm!;4&c3N2Q*o4e%4&smJKPnp7$xd8)g1EcC*6KG-9Z@2#lpv+o8*i$h3vg@ zDRyGyN*1V#)kJ}JqFAs8)-C4)J=Wyrz6>ZJlcVV_gw~;rXfx_YYznoZiHJdjfgyH- zh)q=y4M(7Q2zV+KAgYHz^+;UaL3A758X;c~MWHnr##2zNdQ{7C+!9f%|s~|lrh~$O|aKi+c zR~Afi!vrv_H{O2PWr%l{29pP&k48xh} zI}jlcg#gz9jc`C6&IBchgA$BRhC$uJpn74zyKr`wfKo!6Knpr_FUaKA1n^Ge-kk>b z4zGg}%{%+ZTvtIVT8@{Gol-j%(tAYGd;IG1gQU{B+;2CxiUZ8jUi=@3cdSZ2IfZP3 zUzFudRQlvP(J7|&nX0dUwWs{=<)7d5^!uqzv1?}C_{1aEFTNe!U_ZMHRU!E)L|?n< zp~R94fBV+EFZ~!}&Pc3FAGtGR=tbu$nP#<|)~ubOaYI5wlGEw4<+DOlk{8hPxdqaB zp?S%!)Z5%U!4G2lg8M>W+h4}^0k%X^sY09p(%3jbC*dSItDO`XP7l$>(j&Byq0!0d z@-*!NZ6E(xi6P&VmqURQ%l?7Bb*+)w!`)K)Xbe7*PM+9dc z7}BKy(1rl)Z@>+mvjR}Cq?&x%)E9+a!bd`{z!LqKC@?}b*bn$Uq1v@8&>09MggEF- zth#wp1=5f-5{T=bLM8OL9mE)MTK9UKHhCO_8qyn<8FJjLE$Iji9fKNX*n*wcyt88Q z+t`KNYYqmZZv7rWD`kQ zpmxwt5G(PKy~}~EGO{nH--bVNeRCBE&b$As-ZJa>3M_)dD>*vx1XtZ1(rswR#r;(iQujgnf6h zA_+SVGYMqhkM}U80#w2G;&WIB4z*X7Fi0c)UciM?YfpPCq+bDl<`DXTeOPcim_kAZ zsv9Vihv0_!;f{X)c<%G^*C_P_b&l zU;eQCotfUWVad!7i?UIJQyr3!5gQO27;|FFV)v={YmaMUT&veM z$GT!{jNDcyo@%ZVHAXd(G78g$P>^MKO5PAcq23_e!=S@@gMe@|ZPg7iS&E_WM9}fK zb`rQ_brr6my96#vBb>ub0NxLkeF*?3wE4CGy{R-3KAB```<3^U&Z+ygcDT zo`tCV;b`myw1dh}hmcJ9*?!+%kh~wKPGEHh3I|GV;*Zm)14YZ7{Rx>CFA2Pe<6ct= zBq)nF5(sDPjn`g_3fLZ(lSHd&NOKD*gJPT}Fdc5f3Eq|s8-nrcR*svK7&iEmnrcM9bLJ@u7wV_vLgSPXAzrGARrOQy zp?nGLrtNTIi59-F%t?Re3pD;8tw4trvNM&SZM8nyc zvl|u(=Vi`onAdN0zdd#PGykaly3VpAe7KW-rlUR?6u=dmX=)%i;?-0a^(Ia_JL#(( zlS?KIc|=W8l_TM%T$Ah@o9q@hPjf4Cbx@$nMWb)p$g~}Mp1s;;`{6C2r}hIhwgHXp zJ~XxgjqM1$2IVhkX$e5y;iIwbHe-Wu*thk=&O*?fOAVBxYEqy~DNv>qC{rr?qOr^P z$mliLl+k8P#E}M^Hvp>*uu&sUbj7G4S2vR6$_8Mw0oZKB3jHq45O^+3IA*5pUcua~ zL}-9$FyBKs-9E6FnCxD1Z1tKA+ifx=3AqGmkD^_awukrwAi)Z#K7W%k`1DJ!zA>t! zm7D+CebJw8d*O;l7yNbOufMqW(W|d|?CC33JvJjgIX8Iztd`BUpwTfp;V>bfHn3J5Qq0PM#>XJ|d9B#ycQP+A{Lu6wmlEGRq z^a|0u6esVKypjQr-$gbWdLI<>oyeFhJU_G@8sjHG(Ym2|X!GVscZ6OR*%;Xz>5Z@v zIs{uCf-Mcf=7(}_r?82?RX6_YsWjH!k0}+Yuww&Su>QbUMZfT2HxHm_fCn1V zjtSvWlcJS@TYJHu7HcmYJYE6(DRDOkAnYLEgwE?iPUqDG(nO396e0Dlr7*;}LuJq- z5w>bA*m^!}t?l?x*UDdw?O3s7(rv9c5BTQJ(j)ix%%vY%d*zhdukLvsqr;7Ob6d%z z86}`!Ix$*4RxadW6=aXOJ?fJUuE6;M3mFpB7l9aNVC7*I6puab@k41>;Cz8470fCq zMM9#+z{TI+Tfk~ zSn8GJl!W7Vfu$LVC#}^^f4J(85XEymEAv8*qu34XMs_pX#eU54U2Hc?Q*4@j6F*~F zH`SxbmA&m}Vf$H`T%QF;!TOGZ^&2wad&)!=*a_l^O0XPz0^$+c4!Ct1@*sx3yuI+> zeu6`q!VKQ;8#_8W*e`eOIud5{NA_U1+WYhJWHcOhGk{KZmb(RCw?9C28z*#^mpWGb zb(3KgR?R){CdRO;uxhZfT#h@LZQ|B&oGo&kz_K*U1u3K{G!s%;i&F%+rFs9BD!h=i zjCI&k+cri)Eho$C6qHihl!*#MMrNEAatpl?8c3`a;B=H~$o5ro7Znlme85sA77RU| z8FeCxl3coVf=Mbz?Nr-%k~$Y)u(t1pT1`!BP0<}x*G1FFi>91Fk}f1D*N9GN{Udi6 zwE&Eg_6`BV>Y9%7!kVF}mZ2R@r`|o9{rpdV`tHhm_0e~-bB=7>IetFDNNh{Yw=h@t z@^;2=$2iul;akf$&LA)>xY<0coF_v#$4}#DNsOWWlRLySl1lWA_d7^sUyytO<|?2A zbt-e2Ob7UM5Q-(;TLX2Zc+%a0j{y!&KuxpTxgMY4S(an@7HJgTRldJGL%xhzA@5=S z&I^z7sFu$QIkCtOliIY2+DvvPKSP))UCmz3-7CG!|CxQ4-^+h4{G0zy3HN9MM{oxmD*KOSB2>uLO7~xqb6cNBLkO%0GL6oD0jdV?2|A;7>FUkrXbU& zVygDH%&7A#6$*oIT;zM>?~mh2*_3$Xr(ADQ(Nu!4!L46I(oLmMlh zlyp5qOHqx?dEnF=n>MtRO8u&el2}#MN@n!7RFP4=x3{F>@Jz;S9-Rq8I_;EKy5xJi zwq#%)WJ`n`KHOr$fFC}MUW{J+u>8<9+>WC!pv~o#J@e_*73JAj_pieS&;k?7 z;~lNiiyY@UyeZ`hKXIIIASCzkp5Qq2cl((*z$_^@<_Dse9QaLmy}f>0o(KNa1on9FC+H8=8+W1^o}KtZw&1!B7;bi>Fg}lC`C9su z=cu3uDQ3l-hbvgVQ03pgq%S0VA?^!RF3<11hX@H@i2H)-H>7F4p!=C z3zjbg{UFfvg@7+uzM%P&2%;~L60kE~(VBDYUUskaH+x^2dxtxerfo4@D@7A&iD7E1 zlYE$j-2&ok<1tfyGl$mYHsAZ3AjL_?*a+9K!T8n7P&wIV#EY+eF*|q5UeIt za;b!0a!HUY)Khd*Eqr_}fL$$sU2P7%Ng+aP(kY5S9s`h9^&gN2o|KAs5$RDscRlEY zAT)JVQg=}>o9jfYww~x&U7i|JkqY)2S|cmT>>lXZXkYFQK(`U}G|7MmjCXi}s~QUC zL#mZP0WItYu0G@N-@+WM`eEq%waMbfwUGK&Mz{|ResuB5yHh`U^}#2$*3S9Cvj6Fr zF@M~(!`b}$33Jb#v18Nro;v!03+E1B|47f>^p;htCjIOuJ-fYp=2L7*5%i1`~d>X7uA|Z2HxQ{JK-<~G8qMWBp~dOy_&}%2YirjFH~ha$qE(*s>;6TgMO#j0FH# zpp-);K|6qk^zZ}Fl8S(SIQVh|m}m+JObR}Yf<`@RP@E8z-~dakVtS&_Psp`^xg)dfxc*$EX@VEiYm-SStclHM+~WR5kmXr{_L4+b`mNCa zW8cf;qo}g|&%IS$TX)ye-RV6^r_)(GCLt?L_rn}qG1Utf)Ga>cX1s- z$Da;3qEFv|tO1|ODDHzYBRWqVl{ZEQoyq8LCh{A_bl$zUszVT+na_OQ@Avur(dnG3 zQ+w6D=bm%!Ip_O9@PqJMd0oD)yrZ$cn7@!u>dBmXeuzGrAFt2SKXLvsH?2DjmGehw zqEzrlRVS#Sj6j4k0uiDDkxyGOlsK#)T``rpN{7P7m{`P2ySn{TtNus{W~$vYGlf6z zvg_Tgq^Uw>yPj3PwOCe1l0#5LG@FTpvS+P1Z4#lMB%d} zX#SYSAUY)r+MfhX_H><||FlqoO#{=P-i$r)=lC!Ubd?y~fF8f$ks)_oa^vB}D?eI2 zYeS{+=oMEzv9*20Q|VU6GdG`e&aHhLx1>+pa`uqk6Wk+*4!-{O>#zNmYJ;)qR_-Y2 zcO9bWDszbwCvkajD4u{q~;d<9NJlZu2x8iqQ?*~8je-`>Q@-5a7@AieGPEi$nQJ!>m zK&^#Le-F$w+F?(iNhl5JnyJmzIy63yg+23Fk83RKsr83FH5T^NSlCnRv?|5vHth|~ z!g&hT=`BpdwHvJ44c6fX>wF_|TE1yu{xQMy4U2DzEWRoFtvQ;NeaOxGZe-IAZ1$cW z)9gu|-nFm{8FnJF!471el5MIezwg{<(qFW_wf4njn|lkMylTax+pbu-CEbdpp_5Q0 z5+6=q_vr24oXP$Bp+hgceB_;%si%BB>D-q{zZ&qNIkC!%bRHG*b^Mw9G=34^&I__3 z$&&2$8nPQW2|3w71Vt{rLqbwK=0#o{w;N|*bNz5!uz!Z|H`5qkN(H7YPw~I3(4a72 z7COl@=HT~*2D|i@p5SNiMy4by6!5yuj1b7N0i51TS^`&-C6u%vA;AkgNSFC!VHthF!uKfnNJWh zA0=cyQ=n6%4^2;A(=4f^$ffY%SaA;TtjrD56h}N%!4kxw=FsHOg`sVsH$#FJ$`7@L zJ__;qp$#D%dWJ|q4v|Nedo+FYbRC%p>*z4TfOLduE^?>OU&nHix@y!RR5>SiNiNQf z=7_vip~a$(pJpP9pPF7OMtro=nIA^sM9B08>uTub^(?m)w3c+VhWu0#Los?~C`PXe zu^3B;We@35()auEY!LhYvWG>c66NGZyQ58q%TYOfCcVBq1NAM>=#+8`Ey9?dJ@hW+ zVfF?ECFONK((Yj`_ z-(MA3|J;2uT3@>6&3DnT=%vdSjv7`NEUFoI?W8fQO7oLrS6>{QI%jHQVKmpPBx*;j znKSF5^PZ%-HPQDMT<+Ke0hGTFT=w+eIRLX}F=B=hG7QD)?JO*&QOE=4G{SU*5FnRZ zK^*vXIjJec7vh|n9)~z`pW>b(AUFA7+76f}KnG#WHz%dmo251*a7Xi3HT^*eX(_9jd7e)f<) zeBow1|5hX}N#AyB@7)tC!ZfNzboEibn7qVw`yfn<3~~Z>IOg@&Y4oK-9$#J3ixQI8 z??PU`lNd0Av>(*^GxJh^#>w#a&rAJ9!2q2=hS}^iz~-d^4@;f)*N6s~@e1_MNCQ4Q ziE8K80xVn+pfgf8ZL+=qIuJmCNnzTtC3G?x{xXc0h93@Z5BG)nu$4xzQV>?E!Br&p z8&Vm89Fq^rM`d2l7*e_4klNWkh2{8I5kJf8vDv81Qfu<0&?$j6JAZciw9_)Gthg>^ z8B;cx!@RD#H8%yA36eu1Q%~L%0k>pW*@5!%Yb_XwT@_PO%#s2DHWXQcfNNg!_61ue z>&{(H2YP;+m+13}zqQm9FD z8%?s`6Rnfz0+WaCBx_`^6&iJu^9t&qlq}ffL5>&IfuAhM)_dmK(#krBk%i_egHpLz zX@YuXER0cRpc#0kbiTX@EyAr*t9%t)iLS(}q^smBl^f6v_{ZE$;*HYH@`JEZzEgP; zHY?A-UhygARd`W(58hV(1RpCWphu}7pQ8l9uarWu(x^-ZQ;{8}$6x0ljZ{;N=ojfF&vq5%2a|u= zm%f}Y?p=Rz+w?2&jWic%VSV-zN%J@^q{u&8(yVzsOTFj1tPBbb$FlgP!%DugDq3zp z;Qez85Tr9pE3l=Ush&{#0YR1__GAu7{Rc$B4k6pPAWPVFhTs!;J5BcOu2TVjn#+!8 z_hj;C_5smlmx}aca=<;-P%+~6fn%9O+c7KMV8pD$wgvhylX(7c=gA?o4?J`}#SDa1 zJ1^L?=_9*bZfxDnNjW3tvJM>BrCOQb17;QF43lju28X~!9C0LQL}c79hTCu%2=fYW zD0Z~jvPA~*G7cTm-#MfoNgg^0du1Y!G5Haq?|i77FH`V%W43X-!O`zwv-zW$?DEk} z(cG7&oL^9$ zy*NY~s*d8u2&Onun&3QB8)J<3%+{uQE)^F@7kgF-SBve^K4HJM$McnNLN0Y0rBLcF zQA@QFPnB;lG~ZtGq2XL)<%KVteghCCJ> zvZ6>toE6=m<)agJI>1Am)^X+{MN?xh7@`yt4UZ@35Pc4ZsFHpza;rYKTb0NpJ*h}O zayf+~+v)@`5!uaYoVyckHI>+81+^*b zC@Kw~Ys!-i)Ml(RutB$+x&zH+xh;-ppsl;naqsa(%nuGt>}hEU5OF~+vvP2B_$_P61Q~w- zK6ffenrUQjfFY#05)MsBKfV9)X1@0EeGk*>eKeoIvJ16{^z`10P3uOGsT zPP~WL?EdymqN_FH75s0at96X_fjgtC_5KY4H%t5}Q*(O|!J0@IR3@srPFK90!C0;_I5Mnf|6Q=aqBZVZ9y=abAmV zcS=>B^Z1$KOy~LPeQ2Yy(YY6Qx?XX2}AZ6TF|X$V91oy z7z|lauy8sId66J+77$sG85CL5bc#gQG`HRlL)H~R!0FX{&(zvM>lqJdas zL1$QGWwHl(#<|zJ;)*s;kk^_DvBG;zVT#Zpa6%_O(^O;JS{$ED8hf0vhDBRidMv|C z?6Ure-qU>=?6@-7VherCHM)g6*0dWK)cByaBrB1@k5jg6?NWoeO$-t2%x!YT15F$u zy1k>INvEbl$!S9If+pFFHuXb(SyqGP;91%Wq1pho@QpO{&Xphytxs?IuPv3)ilUvr zP2Y)b`QW`F>CbQ}N`F13dSva1w5#_GG=65fgiqI$g1N7Bh2^om!LvF+Maei#C<|W@y_K&UBlk=VPVSbvj*$F4^OE z2R$Xu5?6`4!PVfdS2r2XQctOOtbe9wrgvsetEbi5nzKr{!oAA4+IMx%_3oRETRpdW zZ}M$a9&`SO{NrcV%)oT3*!xovM`~`?+D8bpE^@~D=BI3PS0!l)A$M4C z>z?!o1A|8@U+xU_kX04Cu~1*Zg}c~}3M9x5GZ9k7Qp*%DegPvZ6OybH;sgtK@yeLm zj`eT6!N4lR_V&iVHn&nZh?XA01n zCw(Y(?#V|juLmq#+n3UP{sbR)^SM9NJ|`tcTDCMX&X8zvS?QGT4{CO6|u9<3rml>OtQJbhZ#3A-Pk&B-Rj@zb)6Wq(xTh!`W)LXOAr zx<^^E-07*=fjN`!Dc9T@lMMHI*41s#CzEeDdH+1EsY1Q$u>Lu3I-Tpga`yJwNX25S zQ*SVN@;v`=8cPPkW#{edfFsOMK_cxVydy}9j3E#_A3!%Z^MA9y1KoH za6{LWygGMTh-Dd`l7?h!aYaLehr`VE$cUQ%y3}k88lRUS&ghN*L`6l&I789!hQXzQ zE<)-_4gtG<=+V+SR9n82GFP_+Zw~}zyf3^h%L*$B6PF;1p&3^jK?L2#c&O<68L(D9 zB4@41%>K}|`1@V>_RuHdxp?tdM``A!VL_LHZ@mHuN@!#VI$Skh$O)C77YYp@V7eV)yj^+0 z3DlAEB`A3+aU_mu9RLwrgWrvFTaEGh51P`Tr-N4-UDO}5eNQ5UQ~Q|N!PONKt|w7&;{GCO%R9%tOu3Msx z$6(8rBHypEl*diY)`FuHQMu(5SHGN# zncvFt-RyY0a$!h(`M|;uK8Yc3!QSQ9cZHe12YYgRIBtS9TYhZ%d#Gx6@jCz79v`8; z?6f$oME?l2zFdS`USD}we?dR2YNv4e+!JTAaJxY+8~p^^B7Vmj@`mjN=4QOn$SfHx zd5&Nga(6A>npHq_jm~9v%}yHTE`@8jj;--?D%f|Tq=UCsR62=Snw`NNiqHBmp?EcE zlC~pry0H1sE;uT`vd7pjZ)wFG3b5Z?3nup|=~tAtp0d?Lj>h8Ov_x2A+=`h3XG9(N z;Q|*Ys~PPfTxsc{U^MI4R?C~&1!wv5NdCa?=JLd#_1uq4g0Fs>Jbk>Pb(t<#?A&Q7 z-$-~(w)T$5KFf@HdWJ^W(r{GuqrvDw8PDZ*L z*uO1LOn**C?B9iIWg#aflj#kkqh{Nnu7*UIDNo#KyI^kLX|rHeQYGqrF*W{~K6uqb z<)A--H^P!ytU_EKFnuzyVCWrRGWec1TEl^ujdl{ceIE0N;K5PL*0THCHjjvY8{ z7@&OzvmjF`)M$2p#(U=)@aji`sCtbAD^}JRoNzc4Rd(Xzt}>7_yl_cY6x^3tx=jk6 zv0_(0HBhZd|OU{(Cu@a4e$V%@;WzuEI!;v6ULm@3{L}Rpa6`$<*jE z7K7_dHJj7W5@P_gA~Q}!1rdEC&6y((|8p^Oe!9C5s6(Q027M6hwud0>jewo`mpcHM zSVw#w0%X=PA|ZiO-YhiDA#PcR7PPi==PM#YiSBECk))ebj={78tyJ7;oM@LH@G5vNX}8{+06&k<7$SpoCMHA z8puU^&1vy+&G;WB_p$&>4lz|<2E znGcQQo{*n|DCl>k4_dBDBgS>Q&RhxsM`sbz2cvM%QFXar;faA#&8o|kbyan$LP!te# z@n&rGdH}Iry-~@tHD*5$Vr?wc<# zbrv(FCIasw>uj*lvYP)*WJdv! zM&Jd_AFgUnyS^x}7Rs!UH05I8Z;JNlWV}?wuI$ZDp&`Bs(I5{Q`~zhmE+}Yt1@PUa zd-BIrm1)WGCtd%wHy#YjLuMW0CwNiDK?#ntt+&82O{tn0TSc-}VvQzW2hp3{hw#93 zh*kL0?-d$x7AZAM4Jo`X?ncOnkI>u>TO*WZZh>L}fSsrv{X>WdnSm0S_M*zfD8LK% zs|{@l^f6IU3Fb`IxF_6arf&!D&f8lmr!MFN2G)>!(*~`V)Q9?@bO>GO6CHA!=1XdT z>X)!zwaoK_>Vtlp<+;2Z<$te+eD~;O+fP_-c!V|z`%G}Em49`6eF z5{@)%6Y)S1Km^T@JyI2vr))mr`7tHWi3o@S9LWRBd;!z|186|?5uCcA103OiK*$h1 z!ty0$rOK|iXp68z4J5;UbRN(_gk-gvv?l^9>0+{~5=|Q>gmb(H-ec`6Fyp}sv=jz4QG(Bfk3Y1~g=h5~O1<+xM1zrYr`-@Kmu$aXXyhMwEpz<-~9yRnI+z#bp*1KMV)d%TZ%ZMx&w+eY}r7F@y;slIUZ+nRsk-Ic#U!v3?%iXs^E9 zx%$e%KswZl?dpE`?7npNw7&cJKKjP*1|GTMziI!>8+4-oB=cV5=j11_PG_~Y{a_)| z1|-f_hw83#fl~^w%p&VFy8GX@v(OC?Bo!fzPCn+C#Y_{26{K3>B|iAtKH#kX6i+`O z4AW+!L+DyO9C_c8FH|s;`CDKJ`7orxrS=IlZQdXl~NhMn$VNkgzmA z9Y}7d4wcYq)!V(HLZd6ia5@gP#TzCNr?k#!{HTmk(tUw|`&spl-Luv5wgB6aDN?MYp7&D~=crn>mf2DhET|^?p<->)TlUVt`A6 zzFu?~5?%R&rU#%tz$yg`Wo%>Q=;UCmZw>o9vNf=PWuRwbVkV#`_|KS&i%!Jc%E{P) zPQ*&z$ymtP(ALQKcgn%hiGYEDftgOq*v8b!jDV4qiIq-KfLea^Z zhv)yT3}v=crKxU*Wh`evzK#1(%uHeNV=cxbkm5xzCfvDiuk_WQQF`03{wqp98is_|Gpv^LO5Vk z1@|mg2(suQ(?FvIFe5^8vTiAOGqOPGTFjCl1-2$B3jco~DA2`_ITWMuSO^MmItW{K zGfHt-p#kPG38Sn{M?j&J6@!QLlye|BSS8iYY)vps#`b3zcBA%Z>HCDzXla1whX`qZ z7Y>01=nFx40CGpjkNC+=ssv_&Oh!lt2Ivn#kCmXpi9=PZ(L);6_3t6o-8$UzXh+A{2Vcy`_b`nG$5hA@Mi0J*KVOmZ*dCZ7 zK%|HJ^dVD$v7!AX^A zcS@GT5F%C>zv(CIA1o~WdOd7B)xEKGmAW^jt7YBPhWneUGOnDE zJc6G(srOu_aI&>Lr|teX=WEQZkH0U~-Yq5P7^|BB zaPI2uSGVSr&I4e@Mhay=YZ zC)!*DP&LJzKA;&R{NwBpxIYVssqNHRU{_8TOQtKq3aAIbR7#(b?`(ag62H>;@)@M& zYdb%F7%N@heW}K!?weiGPJ1Bd9c~C(qCgQQS4k4Td0}jc)JvX2uP#`&@hhs|29X7g?mo^RGn`dDj8;LdwV6o*4xNu~oPbpBkS#FdSemPT z1y8#nye_Rea9&&ZKS_}Rkk@P|^ufgTSp4qeK@cU+mF1{pqd$hR#HkVpcx0H#1YPi; z-uu9|$WjV}-VDWb{ays{(X`=b&kSCXxv61WHvr0?PYj#<_=ktx*cjdtXF13FkQf7~ z5X~ZjdVV+JFYYWYnTFJ3Ty%tRAP3aj0Cxf#)xogpL9iaH(lM&@qdI-fush*$TY-A6 zukEBV%Z}t9eFS-R)lXNJ8Iu5#vg81OIs{d){A!yl!+85si28gqk!pqciB&TwW+3A8 zawxF9ejz1MZ$yeq`uDhX?E-@xl86qxi8V^-r5BWwfM-(|WpbNgvu@o3cFp~IF8I*1 zMiu5)!GILZP{89_UiNcIfDVutv*T9_yC%v_yj zJcS4{g8Gb1Nh`8j6U$b(2)>bT-3kr2*k{8Mr0Uokj}0nShl=-jjfbFUJ%K~TT0H*5 zp#hFrE-D|&Yk$*hcJ+~+LpNfcG^lZHDbaB(D%1=z%Vy;_+R#+Qu+gEQ63+;8O)DJ4 zqL25nrtk4C0YY%6X$QX$wQoJhRK_A?bqfk8C_`?~sp7~s7Cxd3@}RBUiz(|AH~_No zg8)leLDR-fmX$3ZU9XjH6$sdFUPl@XEsxl9i&bDzXfvk7SunC9GA;LA4{1kqXR zLKVnUY*sx{CRt3BW2sbTSd?XGMVf0k9{A-9V3AirGpH-gizcMuw7-RvwD4Qk+|JjbvaG;u5crTSQMw{)_TFy;+5R$M6ZB|L{4>Ox$7}dgC!H zAsI_IG)$uAmZBcAl252M_(U|$7AZ08eNZSWO#?>S^04}Qn!;3}OMUmiFz(Ww_= zzrZ+AF39p2&;7Rr1(~jfhh3>f{zpdxVdcp~L*rm3lEf1RtDjR7gYA(>m~EsvgV1oJ@?zE zfx6!q)ghaF=ca00S=IRueknAl6r+n^2i2_{lM5AAXYpoiD3UdoSN&G^$QIhy7qUv7 zF5Ev$qRNz}2-vW63OuJb7I=Tkcvz5!h*RTaDWh2!3 zzEFz?{rR0524F4P7Ww4ju)mX3(lo(VsLvj0r?X9OjLA6}`_d14;%=42G>7Up#)<0i zt(-R!)0Lp(CJUZc4c~xCcwqRuGu1*u2^nV_^4g2!AWDPyRn@|4EaO@lmh1%1 z_!^)^C8>|c(4iAo=0F{hH*nxM6dYkDF+(a9>6@MT@vkS>2+-*pXx_tJbkDvcluwl9 ztyd~HynpaM8Zu2%BC5vsf~l$_MP#nZoYO&Pydxh#9J%D{sa}V-2l}a61f$kW!X^(j z@N@bOZTA7W>>R?BMf%PDR9^MStQ=Q~x{L8>S+dycxR@kUGt;4IWDzx(cjgVxEfCE* z**rj2bv374UUmKX3d1;*3`OKm(hkX2uFj84*tj{}9a~uu8T;G?u$ArHMOeSwhmbvb z2e&%1v9G)a>?G^R*iCrAHA$YuxLmZ44c*c42^`<)0|wuOsnGu?R9#;Af<|xfV;`aK zKw-UC1hMFEwK#2FeFNrUKPJxnk9f3t>bq~UWJSqyl5l*=J6#7xnyy5GP9M-?5oy5m zj86Uw@iA0zTTM;3Dn>*3Pio7`Cm?6lV2>}!;cxPZ@JO7|;=Igr5X?A+%7r_vkmBpr zobh}G3yPHaez~d!6m0ag31KD1?!i2vYo$K&h94UZy{v!rSswEfga zVw+JIA$sEkC$;qWK9n)__!w--3HfYEf7K&xuoKxy?2w8SRp z=d^o#g+;JJDZHCcn{OUH0)|mZ1UD5v4y8cmOFQ#r%`)U;Yp{nxbPAZ8-X$uyYhT;X zEy|B9973twjLtH@NmB9ZGP1;1D&@w2&#t!7WmnL1*?4`YVPJ12JHQw5STHkCbvSL_ z1Z4I1wgwZE&>on#j;jocarnJ$7E)B}5cgmI{!D{S%e+wIzFe|er6@WvUOhh}gb@9J zy+ot8T=7fLOPTS#5&rkjUR~Z@awd8yMe#Y6$Fh9aeJ$Z(2;UL5cZMaGNM}moMLm%& z(!21bUF7_SrSLgDo!2;SIoFT`!ziwBnY|~^ba~<7C$@ISHf-~Z3X%*+h`GaGklUOHg6 zqV9yA0q>b|DUP=3a->hOIV9aJxoB-#FJk`ai*1|;H7F@KWN~?I1Oih-Q2S|9)*}y7 z*`aSeWPkJn4wd~4kQ>-*C6Thgp&)Wn>x>i4E8;TF4QuHy~M?`+LhJFBT zW;?o-@b%9pn3DU<2(Gl>x3qJn-dYY)L_NV8*yqL37yw0Pa|)W|TazD17D9?atihcL zrfLOa;NS;I)~_K6IHyN{MPiy-7K)-{6e{a$YwUB&x(uVo!&~lav3q5f#*A08#Bm^E z7g$w7pf~^#FGA5T<8$GF;g8ygga`@o6B^K#L}A{CjUk`u%404Rf;!Gfo8cRT`UAi-Xq83~ zhKO?v5EKO!v>yVwv8083XqILfR?G!MQ%{{>H+0`uk~b9L$4_sdjDVt5-J(w(#%!jd zA!bl5cqV`-3fluCHN}9wqZgLQp8zDKa7n+4XgZJA^vJ4~M%ZlyYN1XHEzh`+nPML{ zvk6_uuYts7!qv6l8#&H4+P5~u4iG3j80VL+7}AHrb<8C;$_bBdwz8q?exwelZG+J> zY8kzm$64I<5addkhb^s2l}9C12U<%^7+8Wbhq?o)_isL8uSmo5Pt#f4h9jjGJq4^2 zDfG?i&OSS|qhAdQ7U|70nev`IHa?0{8Zb&Rq{9Pa@spO^)h@MmTsvS#1ZWmmO+?_b z*VA&K=;q)w`ffViete?Hj_0k_#~qjg^laX~I6hYNn^I zFKpOMjg9}FcRGJ!9)0v`K`^8pOKNCYXP~GYcqQFdG)j70SLOf zbv#^#Q&Q`;Jlb;Bq1j)KmFN9FuGG(VBkAiseZ`I9k{v_T`hm(_r9VXSQ6W#Yql<#% zy4!_JpejBnZVB`xnIVw(!#&@(`oXPDUA`q&gFh>&Lx~sf!@3l*p=fDBQPqgZYDEcK zPVS=Ca|glbf?5fCAkEXtAA)n!Cf+e62c9kOZJZ#1VtIh*dHe^*Vn~=XH)T?Sw)5BA zGhtvt zLr|vfZl0iBaJLRHCgiu={-IFUcwXoBS&_~&!((QZ=rEQ%up8n_ks$X7S(QP}SFiAA zALKcnAahyt`Ias~y~!!;D)O%Wi2>|_pbxF`460zQ>Uey*EA7X*zUk4i2QrUu!eMz^ z3fuTdEymLG0707gw*e;E=Ac@cN6>4beds&wadeJav_B(3usfQ{IRtw@Qypl3YnPd! z@cT($kG$4BDY7NvB=sL8qWTDqlV zqq!o@Xxdph6&XkS-~kOP+Z3KXcECyQRu~1e&=kU~sYlfA#g^^9D}?KVO5)u!419B3;-2(XSqx=!XV-a7F58~2Oqh+X&Tx<0ilclcTlH&g!< zdd(QV(_#r^RqSW&#m_79?iI~Z@zts9wY%b#n<*>!6bT)=Oc}n}O2P{h@N7#XnJ^9- z!U^8rj7TkPjZfQ%nOL!LDfvR-^v}Jl-FDCmcE=bgzc%MzGV!%`wh{vzWY;jm!k-z@ zUzyo3DH9XG(#$~$Vi_Ostk}DE9Pb0`73U1WDo3i;hcNbRL24p{6@IUnHlN`PeKL4E zg2}&9&>JO<8z+d!S9 z1o@lxUjglZHp8*-hO+Vga`k)NDt37mOzV41Tf|bX+%Lc@;qyjozX(>zck|ZF!TXL# zwVOK)V{tkuyKb;$x>M>3lzBpEBgdC|2BLmBSDe}^W_wpf!YAX!Fn(R{iN1crare)T z(7FXCT7`Nh8RsU}RIic!p#zu}E)<2}C}D}5(W0Ac=I$slkL^6V%74IqPhoY3&x_;7 zJ8V<$JMd6*QbxwbYHF}K98*nA$>Y|jh}cifkE!mcPb#O@b!_E}eEX?SXxuUm#^*5wf%LJdL(awBA z)11X;+ULZSrE-IN^~O*&SNtY#nKXrSzBFs8^c!UJTj}j-a_X|+0F7DbtmP=lqrS2C zKg>`KyTIIC;F;M0Rm1L~prbbr@rVVENh`W_pdaYTKiRLRxL3#QSBh2YAg3&?v*jTY zA1JwVJiJt)(QJlni@{{d<>JZ~33O%(vz7{^JnQ&J4>O3NsGiEn)5%!JxpIZRw540M zhz-{TNzhoDXXs-?;N6b@-imNqI#^_mP1`=}Uk6+!Cq!wTWR3)mi8C~`&X|uqC|biP z$5Xp$|G79>+3EW>5tn;8mrPg)BrgYPm65#)^c+YpJ^Ac)?BDC&SZBmv6jEE|g>r<1Ksway8fNgc;>NxE$8LTH7@vI#ItWdId6A z7p(dd=2^OX;%do-m+_RCq}EsH;ikmJjrk0>vwwX==JGt@y>(Hg930;MZ!56Iqe4-t zBUId=@(}iOE7tOxX6TUd--p`mRicZ<TP2k-&pbs}?@c)J#O&9r^N^obc&6g%Nx zo5bCqh<|9+M|0;%#4%d;PJrOKgM^2>aMgcrxIsZ*Lc1EX!KcyW!q`!WvXx=$uX?|S z_=J$&Pqf92?xY{wVJ2qu_b^Q9;!a&jhgFmX?(AGDB%JKQd_U9Tlud6ljm2&wA7tuy zkH*_N$s0t_r_r^q`;|@c&DXnE8epRgpLK?Nk1-$K@Zddl^dT2E<^dS&#UDBhJ@6Q6 zIi;#NQe;iP;BZD#*i2UB40)g6A|R4*){2hhK#W+}!;u!GBlx{HbOVD`ClA<8UTcat zH+`5#)1G04-s%H5N4ML69S&z3uNhvV`k%?eof1j|h(LHp2+k>KC%4@OEsV%=`q@u1 z2`&Y1j><|cQ5w~s^v-~^brzT7uQ@7_$R5c&g~Zf2EE!w>8n2F__*OIDZ;lpQXjwE^ zW*ENr0ssT-46=m(H(bg3zvN1WzyB3;{mah6{y%eNR)+O&%oWb>ly~b3z&pxcvYPb* zlpKnrUK>O#i|MHw@ateBbE(Ymb#D%)K3N4M#r}@F%z2tV)Yy? zP&gYEzS-7UP)q}QH~rsOgrM=~5%Q>bb9%aBdKGM>WcodSAsU!zC}HBL*;);Kfk%>n zI)x`R)>Nduv~#^deGpSQK5!Oabx(f<>{IG+mPg{cacArd78L3Fl|+1dV4xa`7hmT@Ylu z*g|#cQABMynaM=2d@mZL0%HYegbG5Qmh@W`5?#Y%tLh+#(Kn)YL;+VfPedKmV2F$0 z2^gRoV)%iNIa3brOd*`(<2HroE@FvI>N39m_d~!&TjDY*A=IVw1qH5vH%b+*Is!FL zbev0(6=R$fuc(iWt`si~e-yOJP~yZzx+y2VeY}JxsS9={u6z9w{jXx{% z;XPtKnqQ0r?^EE^N9LV|rhdLZ4ilFb-`8XBI++Mfzvl1WE@qu&ASifndV9UJwyVqI z%sloFOuRcio_BwoYd&g#Kb5o3cARxPm0!YqZEt_@MR`B{1baJv0&=}-(%|SX&R+kW z+?i)1(?`FZBxuVx_4sOe(^zGs>CFW_Tr0mIfA^lzcFIlxC}IGd@pUp2EYA%1De)~D zKlh7#>B&Ov4df^p|9Mtx+Arz6T=}i{xt4tKYv3~vPT_WbdCfWFNhq}Gyez4t4=JYB zHg2!9GB>ZVC7$J?nok8r;(>w7Xj{b;^63?}Q10pnzcI2QuxC0Y~x=#K3SE9V^<6=wZd| zaWO|MiDr?tp$LN(yz+pJ!ooiPMKAymikjkHEi$reI@d`SInfS0p9R#DZ=nT21Fb@;fKEPl(|^FZQ=m0_{z{{R^js(2 zRv}DBkxMH9yyxHscE%gK&snnos;3Ur#Olsj^FZf;MSfTyHFF;Iq628!Nx0udnDNrv zciVe2Up=+)kuk$iyD``7JItdu&v(^&MJ)?@TEF##{4zs(<&(kFUHI+`T!OVp?Hbh? z%t>E7tG+1yy6=Em{T~0ZFTx?Oe0`m0^&V$4!&%#L14qlbS6=@+`^akg)iR3~l=1Ey&m~IofyFI4*Qs^%C(aSf>0d>Oql!CB-wZAaYc$(9R8Z!FelH{VsR);bJE=JYtI|;*7rb)BucE;pBpC|byq1E z9~zBH22DpV%Vj0iq^Gvr|NP@|s%5Z~F~2}}bKdAa+ew)J8L%Y$4rn;nA!_N(f5f}- z5uKLHHJJT?T+TbI3pNm4&z3Q*M575PD6|({(6gzMI{M;21g!=S-f-V<}77DP-iB@2WjkFq>x!w7b+7usioa-nUj zF9|1Fnu10~DOCfan;U}PrklOJPc4Lm>SU9xiq&KT8?no?S^vwn$A+_K=k$A0I~aPl ze|GfT1p0P*tT@#cCvV<+M&u3*D2Ec{7BHksG#X&T0UQ}{9DMWAxZr~GEo=l*@I@FX zgZV+28AN$sP_xxS{lu S>~VFP;WB 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હP0gW+LjRIUn!$X$d^Ita-@Cqod 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%0ASrDxP*>P-)eXPcDayM?LS z2{vIu(UoR*Fg;e+lD-t+UyNNKP%V~?r;*Ads7EbOJdI^FhJj2xdZOC_`{`alPYd&dgI_caiZvaiyf8E@V6FJ+B!Wt_8XI-yr+64eG<#H20qrZR zA3e7(F~ye8+xG0CrRx=R5n^LFVEKuNmuJ&<^NKUf99CeOsDpPs%kJ{y$+v%e$L-ma zlZZVK+ulA9**AAdzJK-Frxm+-;ZtzBxgP`Amg^btSsm(npMfCo@v>aum|Dug93jlJ6$Bg(&$JdjAq~Ntggu zbFvz83=8PmiW#?%je&wKFBV>GDqF)*^`$LWU+60I#j*ysa&{3~{(Jn&uFFzzhU<)U zlBEo2AE$`T<}aL0AirxYTH^y88{u@t04#WnL#)Zt+0j)bR_~KcP z^Kpf=Bzz(&C3-@cn*-uoQlC!Vbr)bej2acUV=-uN7^} z!7aY;k z8xuM^Y~W7K0@l1Oqp0r@ytB^}deq+I2w0oRMqPg`c}Am`yjNJEl198aZ0(T&Jl&Kr z7K7L{VAe-{H=BZ+SPW%dR0Oo)Ep-n|+CtOYjN(?jDV068FefG;`eBK4X+d~!rb5|? zr$7w3oZ~+kKzLqgM%albKwM;hAHemba864l8#zu$C2vNk-Nk2LI6`D&j+N1O zO>s%j@Gx1H(43Z2^%Zn~Nntw0d$t+1tT7#`#vK^3zJ{Cy>P92Z-bAn7Sh|3X^qKyq zyn_U)^|Rikk*FwDH3e@9e|MOJkELxQtZFT^<9LaxrFUR_Yw%;HyUR}Ark7!}jlzm* zqHt?cq_XGgkCfL}I^8X;X$Ix@z+|-&S>vru=EfDu&saFRG}I?roRC%r$ps-+%Ua>) zF{NNKoOs@s=*qDotwPgt{To{OI5X;s@30u&bZe_gvE0lzEnAesN9>Z_nmBHU&80a@ zoC)tIX#{m(k4(QJn)zUg)3^8Fx0?zFDtJ=Vjgsq-10o*24C;cXK*vhjAf{r&2&+zHsu>!> ze$Sg<4qsI+jd7;d$K9($2@tNtu`8KvPF9Z$0E6c?nAAAKa+(0|TF=(!|0&E@i7Z?L zYqUbL6gklF+74wV#W)XYHKg7S^NN3Kl?#AqBA78#$s8KUR3_5XQC8n7rKSNH%)Od! zR&VccBWnLxzu7;_R^f3RdiaE*&V2E`4V13#nKFMjR%M?W*lp40s=<#*E6isKgOhk$ zTn?5iuBc(J>GGj4=`o7sCee0LGnDdH`Hd>N(TAg2Qm&F!UJoJtFoeXLuu(g3)G`+c zS|z>6&{I;*q4^-rTH?ven^z*fe^BEd{p9ux?d>U%r9vyFGWl=Qx26<>b41V2+~Ij6Cs6a9GkT zoq_1)bRY!EY&>|!uFAc-*o1v;k`gM1YP2kFjZKOvf|nx9260lp?OB?9JD(=1Rw2FO zqzAyZf=!vtxZiG_im@%lNCpKZ%=9`YFDBp%L~A4nFpMJJ2eq*1OY*m%KU?7GD|h9^ zLmXxCDQsuJ>SE4HfUO=q3(6P8MvKUEpc^f!VIUNaCXL~A$*CpLs}_SJBiHw8Ae`!9AFg