|
|
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.