Find a file
Nicholas Kirchner dc57edd946 Updated README
2013-08-22 20:39:18 -05:00
bitmaps deleted .svn subdirectories 2013-08-22 20:01:12 -05:00
include deleted .svn subdirectories 2013-08-22 20:01:12 -05:00
qemu Fixed Makefiles to support Ubuntu 12.04 2013-08-22 20:33:51 -05:00
sim deleted .svn subdirectories 2013-08-22 20:01:12 -05:00
.gitignore ignore DS_Store 2013-08-22 20:04:21 -05:00
49Gp_88.bin Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
4950_92.bin Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
block-qcow.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
block-raw.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
block-vvfat.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
block.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
boot-49g+.bin Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
boot-50g.bin Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
boot.bin Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
config.tmpl Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
EqnData.lib Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
EqnLib.lib Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
flash.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
gdbstub.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
gdbstub.h Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
hex2bin.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
hp49g+.png Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
hp49g+small-notext.png Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
hp49g-u.bin Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
HP49GP_IO_PORT Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
hp50g-hack.png Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
hp50g.png Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
le32hex2bin.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
main.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
Makefile Fixed Makefiles to support Ubuntu 12.04 2013-08-22 20:33:51 -05:00
MEMORY Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
module.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
newconfig Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
README Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
README.config Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
README.QEMU Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_adc.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_arm.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_intc.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_io_port.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_lcd.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_memc.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_nand.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_power.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_rtc.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_sdi.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_spi.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_sram.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_timer.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_uart.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_usbdev.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
s3c2410_watchdog.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
sram.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
symbol.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
SYSCALL-28-TRACE Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
timer.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
tiny_font.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
ui.c Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
update.scp Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00
x49gp.gif Forked from revision 11 at http://sourceforge.net/p/x49gp/code/11/tree/ 2013-08-22 19:57:00 -05:00

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.