/* BOOTER ;выполнялка ком."8" ;вместо #29AE LD BC,#F4FF RST #20 DW #1EAF ;CLEAR_RUN ; LD A,1 RST #20 DW #229B ;border и 23624 ; DI LD HL,bootkus1 ;#E00 LD DE,#F500 LD BC,bootln1 ;#1F5 PUSH DE LDIR LD HL,bootkus2 ;#344D LD BC,bootln2+1 ;#334 LDIR SET 3,(IY+#01) RET */ org 0 INCLUDE 'Shared_Includes/constants/ZX_VARS.inc' INCLUDE 'Shared_Includes/constants/sp2000.inc' INCLUDE 'inc/rom_routines.inc' bootkus1: DISP #F500 DI ;его и #344D копирует #3AE7 PUSH AF PUSH HL PUSH DE PUSH BC EXX PUSH HL LD HL,(ZX_VARS.ERR_SP) LD (.ERR_SP),HL LD A,(ZX_VARS.CONT_DISK) LD (ZX_VARS.OPER_DISK),A ADD A,#3C LD (ZX_VARS.PDOS_COPY),A LD HL,#3C00 LD DE,#8000 PUSH DE LD (ZX_VARS.ZG),DE LD BC,#0400 LDIR LD (IY+#47),#00 POP HL LD BC,#0080 .big_loop: PUSH BC INC HL INC HL INC HL LD B,#03 .loop1: LD D,(HL) LD A,D RLA OR D LD (HL),A INC HL DJNZ .loop1 POP BC DEC BC INC HL INC HL LD A,B OR C JR NZ,.big_loop XOR A OUT (BorderColor),A LD A,#44 LD (ZX_VARS.BORDER),A DEC A DEC A LD (ZX_VARS.ATTR_P),A CALL BASIC_FN.x48.x48.cls .loop2: DI XOR A LD (VAR_1),A .var_3+1: LD HL,LL3761 PUSH HL LD (ZX_VARS.ERR_SP),SP LD (IY+#00),#FF LD A,(ZX_VARS.CONT_DISK) LD C,#01 CALL #3D13 LD HL,#9000 LD DE,#0000 LD BC,#0805 CALL #3D13 LD A,(IY+#00) CP #FF JR NZ,.loop2 LD HL,.loop2 LD (.var_3),HL EXX LD DE,#A000 EXX LD HL,#9000 LD DE,#0008 LD A,(HL) OR A JP Z,LF887 .loop3: LD DE,#0008 ADD HL,DE LD A,(HL) CP #42 CALL Z,LF836 ADD HL,DE LD A,(HL) OR A JR NZ,.loop3 LD A,(VAR_1) OR A JP Z,LF887 LD B,#3F SBC A,B JP NC,LF8A6 LD A,(VAR_1) DEC A LD (#F86F),A CALL #F9BB LD (#F653),A CALL #0D6B DI CALL #F870 LD A,#02 CALL #F8CB LD A,#02 CALL #1601 LD (IY+#47),#00 LD DE,#A000 LD HL,#0008 .loop4: LD A,#20 RST #10 LD A,#20 RST #10 LD BC,#0008 PUSH DE CALL #203C POP DE EXD ADC HL,DE EXD LD A,(VAR_1) DEC A LD (VAR_1),A JR Z,LL0f35 LD A,#20 RST #10 LD A,#20 RST #10 LD BC,#0008 PUSH DE CALL #203C POP DE EXD ADC HL,DE EXD LD A,(VAR_1) DEC A LD (VAR_1),A JR Z,LL0f35 LD A,#20 RST #10 LD A,#20 RST #10 LD BC,#0008 PUSH DE CALL #203C POP DE EXD ADC HL,DE EXD LD A,(VAR_1) DEC A LD (VAR_1),A JR Z,LL0f35 LD A,#06 RST #10 JR .loop4 ; .ERR_SP: WORD 0 NOP LL0f35 LD HL,#5802 CALL #F816 LD DE,#000A LD IX,#F634 LD (IX+#00),#00 LL0f46 EI RES 5,(IY+#01) HALT PUSH HL PUSH IX CALL #F9BB CP #40 JP NZ,#F792 CALL #F989 POP IX POP HL BIT 5,(IY+#01) JR Z,LL0f46 LD A,(#5C08) CP 8 JP Z,#F6ED CP "o" JR Z,LL0fed CP "6" JR Z,LL0fed CP 9 JP Z,#F70C CP "p" JP Z,#F70C CP "7" JP Z,#F70C CP 11 JP Z,#F72E CP "q" JP Z,#F72E CP "9" JP Z,#F72E CP 10 JP Z,#F764 CP "a" JP Z,#F764 CP "8" JP Z,#F764 CP "d" JP Z,#FA1B CP "1" JR Z,LL0fd0 CP "2" JR Z,LL0fd0 CP "3" JR Z,LL0fd0 CP "4" JR Z,LL0fd0 PUSH AF LD A,#FE IN A,(#FE) RRA JR NC,LL0f46 POP AF CP 13 JP Z,#F79D CP "0" JP Z,#F79D CP 32 JP Z,#F79D JP #F646 LL0fd0 PUSH AF CALL #0D6B LD A,#03 CALL #F8CB POP AF SUB #31 LD C,#01 LD (#5CF8),A LD (#5CF9),A LD (ZX_VARS.CONT_DISK),A CALL #3D13 JP #F556 LL0fed CALL #F870 CALL #F826 DEC (IX) bootst2 bootln1 = $-bootkus1 LD A,(IX+#00) CP #FF JR NZ,LL345b LD A,(#F86F) LD (IX+#00),A LL345b CALL #F7FA CALL #F816 JP #F646 CALL #F870 CALL #F826 INC (IX+#00) LD A,(#F86F) INC A CP (IX+#00) LD A,(IX+#00) JR NZ,LL347d XOR A LD (IX+#00),A LL347d CALL #F7FA CALL #F816 JP #F646 CALL #F870 CALL #F826 DEC (IX+#00) DEC (IX+#00) DEC (IX+#00) BIT 7,(IX+#00) LD A,(IX+#00) JR Z,LL34b3 LL349e LD B,#03 ADD A,B LD B,A PUSH BC LD A,(#F86F) SUB B JR C,LL34ac POP AF JR LL349e LL34ac POP AF DEC A DEC A DEC A LD (IX+#00),A LL34b3 CALL #F7FA CALL #F816 JP #F646 CALL #F870 CALL #F826 INC (IX+#00) INC (IX+#00) INC (IX+#00) LD A,(#F86F) SBC A,(IX+#00) LD A,(IX+#00) JR NC,LL34e1 LD B,#03 LL34d8 SUB B JR NC,LL34d8 INC A INC A INC A LD (IX+#00),A LL34e1 CALL #F7FA CALL #F816 JP #F646 CALL #0D6B LD A,#03 CALL #F8CB JP #F556 LD BC,#FFFD LD A,#07 OUT (C),A LD B,#BF LD A,#FF OUT (C),A ;глушит AY CALL #F870 LD A,#07 LD (#5C48),A LD (#5C8D),A CPL LD (#5D3B),A LD HL,#3C00 LD (#5C36),HL LD L,(IX+#00) LD H,#00 ADD HL,HL ADD HL,HL ADD HL,HL LD DE,#A000 ADD HL,DE LD DE,#F7F0 LD BC,#0008 LDIR LD HL,(#F632) LD (ZX_VARS.ERR_SP),HL LD HL,#F7EC LD (#5C5D),HL CALL #0D6B DI POP HL EXX POP BC POP DE POP HL POP AF CALL #3D03 JP PE,#F73A LD (#6F62),HL LD L,A LD (HL),H JR NZ,LL356e JR NZ,LL3570 LD (#D50D),HL INC A LD HL,#5802 LD DE,#000A LL355a DEC A JR Z,LL356c ADD HL,DE DEC A JR Z,LL356c ADD HL,DE DEC A JR Z,LL356c INC DE INC DE ADD HL,DE DEC DE DEC DE JR LL355a LL356c POP DE RET LL356e PUSH HL EXX LL3570 POP HL LD A,#70 PUSH HL POP DE INC DE LD BC,#0007 LD (HL),A LDIR EXX RET PUSH HL EXX POP HL LD A,#42 PUSH HL POP DE INC DE LD BC,#0007 LD (HL),A LDIR EXX RET ; LF836: PUSH HL PUSH DE SBC HL,DE LD A,(HL) LD B,#20 SBC A,B JR C,LL35c3 LD IX,#F981 PUSH HL LD BC,#0800 LL35a0 LD A,(HL) CP (IX+#00) JR NZ,LL35a7 INC C LL35a7 INC HL INC IX DJNZ LL35a0 LD A,C CP #08 JR NZ,LL35b4 POP HL JR LL35c3 LL35b4 EXX POP HL LD BC,#0008 LDIR EXX LD A,(VAR_1) INC A LD (VAR_1),A LL35c3 POP DE POP HL RET VAR_1: DB 0 VAR_2: DB 0 PUSH AF PUSH BC LD B,#D2 LL35cc PUSH BC XOR A OUT (#FE),A RR B LL35d2 DJNZ LL35d2 SET 4,A OUT (#FE),A POP BC DEC B DJNZ LL35cc POP BC POP AF RET ; LF887: XOR A CP (IY+#47) JP NZ,#F556 CALL #0D6E LD A,#02 CALL #1601 XOR A CALL #F8CB LD A,#01 CALL #1601 LD (IY+#47),#FE JP #F795 ; LF8A6: XOR A CP (IY+#47) JP NZ,#F556 CALL #0D6E LD A,#02 CALL #1601 LD A,#01 CALL #F8CB LD A,#3F LD (VAR_1),A LD BC,#FFFF LL361a NOP DJNZ LL361a DEC C JR NZ,LL361a JP #F5B4 LD DE,#F8D1 JP #0C0A DB #80 DB #16,#0A,#05 DB "!!! NO PROGRAMS !!!" DB (" "+#80) DB #16,#0A,#03,#10,#04 DB "MORE THAN 63 BASIC FILES" ;than!!! DB (" "+#80) DB #11,#00,#10,#04,#13,#01 DB " -=New ROM boot v1.06=-" DB #06 DB "Remix by CompoWellcome 05.02.99" DB ("."+#80) DB #10,#02,#13,#01 DB " INSERT NEW DISK" DB #06 DB " FOR READING CATALOGUE." ;catalogue! DB (" "+#80) DB "boot " LD HL,#5AE1 PUSH HL POP DE DEC DE LD BC,#001F LDIR LD HL,#5AFF LD A,(#F9BA) OR A JR Z,LL3703 LD A,(HL) AND #07 INC A CP #08 JR NZ,LL3710 XOR A LD (#F9BA),A LD A,#07 LL3703 LD A,(HL) AND #07 DEC A OR A JR NZ,LL3710 CPL LD (#F9BA),A LD A,#01 LL3710 LD (HL),A RET LL3712 NOP LD A,#C3 LD (#5CC2),A LD HL,#F9E6 LD (#5CC3),HL LD IX,#2FC1 CALL #FA20 LD A,#08 LD C,#1F LD IX,#2A53 CALL #FA20 LD (#F9E7),SP LD DE,#0000 LD IX,#2740 CALL #FA20 LD SP,#0000 LD IX,#1FF3 CALL #FA20 LD IX,#1FEB CALL #FA20 LD IX,#2FC1 CALL #FA20 LD A,#C9 LD (#5CC2),A LD A,(#5CCD) AND #40 RET LL3761 LD A,#30 INC A CP #33 LD (#FA0A),A JP NZ,#F6D0 LD A,#30 LD (#FA0A),A JR LL3761 DI LD IX,#0000 PUSH IX JP #3D2F BLOCK 3,#FF ENT