|
|
1.1 ! root 1: /* ! 2: Hatari ! 3: ! 4: This file is distributed under the GNU Public License, version 2 or at ! 5: your option any later version. Read the file gpl.txt for details. ! 6: ! 7: Reset emulation state. ! 8: */ ! 9: ! 10: #include "main.h" ! 11: #include "decode.h" ! 12: #include "hostcall.h" ! 13: #include "int.h" ! 14: #include "m68000.h" ! 15: #include "misc.h" ! 16: #include "reset.h" ! 17: #include "screen.h" ! 18: #include "audio.h" ! 19: #include "stMemory.h" ! 20: #include "video.h" ! 21: #include "loadfe2.h" ! 22: #include "dialog.h" ! 23: ! 24: unsigned long STRamEnd; /* End of ST Ram, above this address is no-mans-land and hardware vectors */ ! 25: ! 26: /*-----------------------------------------------------------------------*/ ! 27: /* ! 28: Set default memory configuration, connected floppies and memory size ! 29: */ ! 30: void SetDefaultMemoryConfig(void) ! 31: { ! 32: STMemory_WriteLong(0x42e, MEMORY_SIZE); /* phys top */ ! 33: ! 34: /* Set memory range */ ! 35: STRamEnd = MEMORY_SIZE; /* Set end of RAM */ ! 36: ! 37: /* Initialize the memory banks: */ ! 38: memory_uninit(); ! 39: memory_init(STRamEnd, 0, MEMORY_SIZE); ! 40: } ! 41: ! 42: ! 43: /*-----------------------------------------------------------------------*/ ! 44: /* ! 45: Reset ST emulator states, chips, interrupts and registers ! 46: */ ! 47: int Reset_VM () ! 48: { ! 49: STMemory_Clear(0x00000000, MEMORY_SIZE); /* Clear First 4Mb */ ! 50: ! 51: SetDefaultMemoryConfig(); ! 52: LoadFE2 (); ! 53: STMemory_WriteLong(4, FE2BASE); /* Set reset vector */ ! 54: STMemory_WriteLong(0, MEMORY_SIZE); /* And reset stack pointer */ ! 55: ! 56: Int_Reset(); /* Reset interrupts */ ! 57: Video_Reset(); /* Reset video */ ! 58: ! 59: GemDOS_Reset(); /* Reset GEMDOS emulation */ ! 60: ! 61: Audio_Reset(); /* Reset Sound */ ! 62: Screen_Reset(); /* Reset screen */ ! 63: M68000_Reset(TRUE); /* Reset CPU */ ! 64: ! 65: /* And keyboard check for debugger */ ! 66: #ifdef USE_DEBUGGER ! 67: Int_AddAbsoluteInterrupt(CYCLES_DEBUGGER, INTERRUPT_DEBUGGER); ! 68: #endif ! 69: ! 70: return 0; ! 71: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.