» Projects

Projects

MC64 - Moepi's C64 Emulator

MC64 v0.1alpha

MC64 v0.1alpha

MC64 is a C64 emulator written in Java for an academic project. It is incomplete but allows to boot BASIC and interact with the interpreter. The source code is available below.


Version 0.1alpha:

  • MOS6502 CPU emulation
  • MOS6569 VIC-II emualtion (basic text mode only)
  • Keyboard I/O for basic charset
  • Timer interrupts and rough timing control
  • BASIC interpreter operable

Known problems:

  • The emulator might close unexpectedly with a message on console stating that an opcode is not implemented. The reason is that I had no possibility to test all the opcodes. Therefore I decided to disable all opcodes which I did not need yet.
  • The execution speed greatly depends on the JavaVM and operating system in use. Windows XP with Java 1.6 is most efficient (about 2% CPU load on a 2,4GHz Core 2 Duo). Linux and MacOS are much slower. If you are using a 64bit operating system try to start MC64 from the command line specifying a 64bit data model: "java -d64 -jar mc64.jar"
  • The bilinear filter option only works under Windows XP with an acceptable performance. The bicubic filter will probably be removed in the future.
  • When loading a file from tape (which does not work since there is no tape emulation yet) and resetting the machine MC64 will close and wrongly report an unimplemented opcode.

Download:

Moepi Border - Building a router

Casetronic Travla C158-060

Casetronic Travla C158-060, Mini-ITX form factor
(source: EpiaCenter)

Currently I'm using an aging Cisco 1721. It is hard to give this device up but in the past few months it suffers from sporadic reloads. Things get worse because it stucks in ROM monitor mode if it is not being cold started by hand. This drives me crazy when I'm away for a couple of days and suddenly find my homepage offline. So I decided to look for a new router. Beneath an Internet connection the device should also offer flexibility in hard- and software. Especially I plan to integrate an AccessPoint which serves a WLAN in a separated subnet. Furthermore the router should be compatible with the Cisco router in my brother's company. This will be hard work since the IPSec implementation of Cisco seems to be a bit proprietary. Therefore, a Cisco 1841 looks appropriate at a first glance but it has two major drawbacks:

  • It is quite expensive (at least 600€)
  • It has a chassis fan - active cooling of a router in my living room is a no-go

So I had to look for something else. The idea is a Linux based router running on a low power PC. For this purpose an Intel Atom platform with a mobile chipset looks appropriate. The most difficult thing was to find an appropriate mainboard. Most of the Atom boards employ the Intel G945GC chipset which is found in normal desktop computers. Due to the small form factor these chipsets use an active fan. Instead, the MSI offers a board which uses the i945GSE chipset. This is found in netbooks like the Eee PC of Asus and does not need active cooling. Furthermore it offers two GBit LAN ports, one PCI slot and one miniPCI slot - the perfect basis for a router.


Read up on my small router howto.