# Disassembly of Multiface 2 memory dump loader

NOTE:

- It is assumed that the Multiface is "visible" when this file is run. If the Multiface is "invisible" the memory dump will fail to load.

    Load address: &AF80
    Length:  &0138
    Execution: &AF80

    ** START OF FILE **

    AF80            DI             ;disable interrupts.
    AF81            EXX
    AF82            LD BC,&7F89    ;Gate Array: Mode 1, upper rom off, lower rom on
    AF85            OUT (C),C
    AF87            EXX
    AF88            LD BC,&FEE8    ;activate Multiface rom/ram
    AF8B            OUT (C),C

                                   ;now, Multiface ROM goes from &0000-&2000
                                   ;     Multiface RAM goes from &2000-&3fff

    AF8D            LD HL,&AFA4    ;copy data needed to restore program into
    AF90            LD DE,&3A0F    ;Multiface RAM
    AF93            LD BC,&00FA
    AF96            LDIR
                                        ;HL = &B09E

    AF98            LD DE,&3EE6    ;poke register values into Multiface RAM
    AF9B            LD BC,&001A
    AF9E            LDIR

    AFA0            JP &002B       ;call memory dump restore function in Multiface ROM

    AFA3            defs 1         ;** not used **

    AFA4-B09D           DATA TO RESTART HARDWARE TO BE CONFIRMED

    ;; Z80 REGISTER VALUES

    B09E            defs 1          ;;low byte of IY register
    B09F            defs 1          ;;high byte of IY register
    B0A0            defs 1          ;;low byte of IX register
    B0A1            defs 1          ;;high byte of IX register
    B0A2            defs 1          ;;C' register
    B0A3            defs 1          ;;B' register
    B0A4            defs 1          ;;E' register
    B0A5            defs 1          ;;D' register
    B0A6            defs 1          ;;L' register
    B0A7            defs 1          ;;H' register
    B0A8            defs 1          ;;F' register
    B0A9            defs 1          ;;A' register
    B0AA            defs 1          ;;C register
    B0AB            defs 1          ;;B register
    B0AC            defs 1          ;;E register
    B0AD            defs 1          ;;D register
    B0AE            defs 1          ;;Flags register after a LD A,R instruction
    B0AF            defs 1          ;;R register
    B0B0            defs 1          ;;Flags register after a LD A,I instruction
    B0B1            defs 1          ;;I register
    B0B2            defs 1          ;;L register
    B0B3            defs 1          ;;H register
    B0B4            defs 1          ;;F register
    B0B5            defs 1          ;;A register
    B0B6            defs 1          ;;Low byte of SP register
    B0B7            defs 1          ;;High byte of SP register

                                    ;;The PC of the frozen program is stored on the stack of the frozen program.

    ** END OF FILE **