;LAST UPDATE: 06.01.2013 savelij
PHASE CPU0
JP $
DUPL 0X0008-$,0XFF
JP $
DUPL 0X0010-$,0XFF
JP $
DUPL ADR_SEL_ROM-$,0XFF
OUT (C),A ;0014
NOP
RET
DUPL 0X0018-$,0XFF
JP $
DUPL 0X0020-$,0XFF
JP $
DUPL 0X0028-$,0XFF
JP $
DUPL 0X0030-$,0XFF
JP CALL2PAGE
DUPL 0X0038-$,0XFF ;0038
; PUSH HL
; LD HL,(ADR_INT)
; EX (SP),HL
; RET
EI
RET
DUPL 0X0080-$,0XFF
binclude ../../dec40.bin
DUPL 0X00FF-$,0XFF
DW 0X0038
UNPACK_STS LD BC,WIN_P1
LD A,PAGE_STS
OUT (C),A
IF BUILD_DEBUG=1
LD HL,PACK_STS
LD DE,CPU1
JP UNPACK
PACK_STS binclude ../../sts/sts6_pack.rom
ELSE
RET
ENDIF
RD_SET_PAL LD HL,(ADR_INT)
PUSH HL
LD HL,EI_RET
LD (ADR_INT),HL
LD DE,0XAF0F ;ДАЛЬШЕ СОХРАНЯЕМ ТЕКУЩУЮ ПАЛИТРУ
LD BC,0XBD77
OUT (C),D ;ВКЛЮЧЕНИЕ ТЕКСТМОДА
LD HL,(ADR_PALITRA)
LD BC,RD_PALITRA
EI
HALT
DI
NMISERV003 LD A,E
BIT 3,E
OUT (0XFE),A
JR Z,NMISERV004
OUT (0XF6),A
NMISERV004 IN A,(C)
LD (HL),A
INC HL
DEC E
JP P,NMISERV003 ;ПАЛИТРУ СОХРАНИЛИ
LD HL,MAGIC_PAL
LD E,0X0F
SETPAL1 LD A,E
BIT 3,E
OUT (0XFE),A
JR Z,$+4
OUT (0XF6),A
LD A,(HL)
INC HL
OR %00001100
OUT (0XFF),A
DEC E
JP P,SETPAL1
LD BC,0XFF77
OUT (C),D
POP HL
LD (ADR_INT),HL
RET
MAGIC_PAL DB 0X0C,0X2D,0X4E,0X6F,0X9C,0XBD,0XDE,0XFF
DB 0XEC,0XED,0XEE,0XEF,0XFC,0XFD,0XFE,0XFF
;ПАЛИТРА ДЛЯ SPECTRUM РЕЖИМА
TRSTPAL DB 0X00,0X21,0X42,0X63,0X90,0XB1,0XD2,0XF3
DB 0XE0,0XE1,0XE2,0XE3,0XF0,0XF1,0XF2,0XF3
SETUP_PAL1 LD HL,(RREG_L)
LD DE,EXTERN_PAL-CPU2
LD BC,0X10
PCALL LDIR_BYTES,P_RST8
LD HL,EXTERN_PAL
JR RESTOREPAL1
SETUP_PAL LD A,(RREG_A)
AND A
JR NZ,SETUP_PAL1
LD HL,TRSTPAL
RESTOREPAL1 LD (ADR_PALITRA),HL
RESTORE_PAL LD HL,(ADR_INT)
PUSH HL
LD HL,EI_RET
LD (ADR_INT),HL
LD HL,(ADR_PALITRA)
LD DE,0XAF0F
LD BC,0XBD77 ;ДОСТУП К ПАЛИТРЕ
OUT (C),D ;вкл.PAL
EI
HALT
DI
SETPAL0 LD A,E
BIT 3,E
OUT (0XFE),A
JR Z,$+4
OUT (0XF6),A
LD A,(HL)
INC HL
OR %00001100
OUT (0XFF),A
DEC E
JP P,SETPAL0
LD BC,0XFF77
OUT (C),D
POP HL
LD (ADR_INT),HL
RET
DUPL 0X3BFF-$,0XFF
DW 0X0038
DUPL 0X3FF8-$,0XFF
DB "ADDON2"
DW DATA_VERS