forked from datajerk/x49gp
-
Notifications
You must be signed in to change notification settings - Fork 7
/
TODO
63 lines (40 loc) · 1.67 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Next steps:
- Verify Locks needed
- Audit Keyboard <-> IO Port Interaction
- Add remote gdb interface
Registers to check access to:
IO PORT MISCCR
MMU FSR
MMU FAR
MMU Alignment Checks in general
MMU r7: Wait for Interrupt
File Manager:
Read from 0x08080000: Probe memory size???
-> Add mirrored mapping of SRAM?
Annunciators:
Bits set in Column 132 of the LCD screen memory:
Row 0: Transmit
Row 1: Left Shift
Row 2: Right Shift
Row 3: Alpha
Row 4: Battery
Row 5: Busy
IRQ Branch Table:
08000020: IRQ reads 08000020 + (IRQOFFSET << 2), branches there
IRQ returns with "subs pc, lr, #4"
The speed of the emulator is an issue...
It is running about 20 times SLOWER than the original calculator at the moment
on my 400 MHz UltraSparc. There will be quite some speedup running on a modern
PC or workstation with faster processor. Also, at the moment I have a lot of debugging
enabled, which slows down the emulator.
Getting the full 75 MHz out of the emulated ARM core will be hard work, I have not
looked into the potential optimizations that can be done in the core emulator, but
there are some things done during every instruction that we don't need for this
machine.
There are generally two options to speed up or use the emulator:
1. Emulate the hardware as closely as possible to help debug programms digging
into the s3c2410.
2. Emulate the saturn part to make it a usable calculator. Here one could implement
some of the most often used KOS syscalls directly in the emulator without doing
these on the emulated ARM core. This would speed up the calculator significantly.
Optimally there will be a runtime option to switch between these two modes.