diff --git a/sdk/common.mk b/sdk/common.mk
index 23e6723..91a1b5d 100644
--- a/sdk/common.mk
+++ b/sdk/common.mk
@@ -88,7 +88,7 @@ export ZCCCFG
# PATH
export PATH := $(_path):$(PATH)
-undefine _path
+#undefine _path
endif # !ZXSDK
diff --git a/utils/MC b/utils/MC
new file mode 100644
index 0000000..a57ec2c
Binary files /dev/null and b/utils/MC differ
diff --git a/utils/Makefile b/utils/Makefile
index 8ca254e..8d7dd69 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -49,6 +49,7 @@ BINS=\
BACKUP\
CORCLEAN\
COREBIOS\
+ MC\
ROMSBACK\
ROMSUPGR\
UPGR16M\
@@ -197,6 +198,17 @@ build/UPGRADE: $(srcdir)/upgrade.asm\
| build
$(AS) $(AFLAGS) --raw=$@ $<
+
+build/MC: $(srcdir)/mc.asm\
+ $(INCLUDEDIR)/zxuno.def\
+ $(INCLUDEDIR)/esxdos.def\
+ $(INCLUDEDIR)/rst28.mac\
+ $(INCLUDEDIR)/Print.inc\
+ $(INCLUDEDIR)/wrflsh.inc\
+ $(INCLUDEDIR)/rst28.inc\
+ | build
+ $(AS) $(AFLAGS) --raw=$@ $<
+
build/ZXUNOCFG: $(srcdir)/zxunocfg.asm\
$(INCLUDEDIR)/zxuno.def\
| build
diff --git a/utils/mc.asm b/utils/mc.asm
new file mode 100644
index 0000000..0f50ecc
--- /dev/null
+++ b/utils/mc.asm
@@ -0,0 +1,148 @@
+; mc.asm - multicore load any .ZX1 core on slot 9.
+; File must exists in current directory. It must be run while using a "root" mode ROM.
+;
+; Copyright (C) 2022 Antonio Villena
+;
+; This program is free software: you can redistribute it and/or modify
+; it under the terms of the GNU General Public License as published by
+; the Free Software Foundation, version 3.
+;
+; This program is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+;
+; You should have received a copy of the GNU General Public License
+; along with this program. If not, see .
+;
+; Compatible compilers:
+; SjAsmPlus,
+
+ output MC
+
+ include zxuno.def
+ include esxdos.def
+ include rst28.mac
+
+ define VERSION "0.1"
+
+ org $2000 ; comienzo de la ejecución de los comandos ESXDOS
+
+Main ld a, h
+ or l
+ jr nz, NoPrint ; si no se ha especificado nombre de fichero, imprimir uso
+ call Print;567890123456789012345678901
+ dz '.mc corefile.zx1', 13, 13, 'Loads and executes a core'
+ ret
+NoPrint ld de, FileName
+NextChar ld a, (hl)
+ or a
+ jr z, EndParse
+ cp ' '
+ jr c, EndParse
+ ldi
+ jr NextChar
+EndParse xor a
+ ld (de), a
+ ld bc, zxuno_port
+ out (c), a
+ inc b
+ in f, (c)
+ jp p, Nonlock
+ call Print
+ dz 'ROM not rooted'
+ ret
+Nonlock wreg flash_cs, 0 ; activamos spi, enviando un 0
+ wreg flash_spi, $9f ; jedec id
+ in a, (c)
+ in a, (c)
+ in a, (c)
+ in a, (c)
+ wreg flash_cs, 1 ; desactivamos spi, enviando un 1
+ sub $19
+ jr z, Goodflsh
+ call Print
+ dz 'Incorrect flash IC'
+ ret
+Goodflsh ld a, scandbl_ctrl
+ dec b
+ out (c), a
+ inc b
+ in a, (c)
+ and $3f
+ ld (normal+1), a
+ or $c0
+ out (c), a
+ call init
+ ld bc, zxuno_port
+ ld a, scandbl_ctrl
+ out (c), a
+ inc b
+normal ld a, 0
+ out (c), a
+ ld bc, zxuno_port
+ out (c), a
+ ld bc, zxuno_port
+ ld a, core_addr
+ ld hl, $2f80
+ ld de, core_boot
+ out (c), a
+ inc b
+ out (c), h
+ out (c), l
+ out (c), d
+ dec b
+ out (c), e
+ inc b
+ out (c), a
+init xor a
+ esxdos M_GETSETDRV ; A = unidad actual
+ jr nc, SDCard
+ call Print
+ dz 'SD card not inserted'
+ ret
+SDCard ld b, FA_READ ; B = modo de apertura
+ ld hl, FileName ; HL = Puntero al nombre del fichero (ASCIIZ)
+ esxdos F_OPEN
+ ld (handle+1), a
+ jr nc, FileFound
+ call Print
+ dz 'File not found'
+ ret
+FileFound call Print
+ db 'Writing SPI flash', 13
+ dz '[', 6, ' ]', 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8
+ ld ixl, $15
+ ld de, $2f80
+ exx
+Bucle ld a, 'o'
+ exx
+ push de
+ rst $10
+ pop de
+ exx
+punto ld hl, $8000
+ ld bc, $4000
+handle ld a, 0
+ esxdos F_READ
+ jr nc, ReadOK
+ call Print
+ dz 'Read Error'
+ ret
+ReadOK ld a, $40
+ ld hl, $8000
+ exx
+ call wrflsh
+ inc de
+ exx
+ dec ixl
+ jr nz, Bucle
+ ld a, (handle+1)
+ esxdos F_CLOSE
+ call Print
+ dz 13, 'Launching core'
+ ret
+ include Print.inc
+ include wrflsh.inc
+ include rst28.inc
+FileName