Skip to content

Category: News



I always loved the [SNES]( For me it was the last piece of hardware on which i enjoyed gaming. Nothin hit me again like Mario Kart or Yoshis Island. But that’s a different story.

Since my [Amiga 500]( days i loved to programm in ASM, but never really had the opportunity to code lately,since x86 ASM is really awful to code. But [68000er]( ASM was always fun. So the SNES could be a good target? Yep ! The Snes uses a pimped up 6502, called 65816. It’s faster, uses 16-bit operations and has 24bit address space. To get some code running on the SNES i used the [WLA]( Assembler. So what does is look like ?

	ldx.w   #plane_0         ; assign vram location $1000 to $2116/7
	stx     $2116
	ldx     #$0000

	lda.w  	text_0,x        ; get ascii text data
	and     #$3f            ; we only want the first 64 characters
							; convert ascii to c64 screen code
	sta     $2118
	stz     $2119           ; clear unwanted bits, no h/v flipping
	cpx     #$0400          ; transfer entire screen
							; $20*$20=$0400  (1024 bytes)
	bne    init_plane_0_loop 

Yo, old skool. So i started to write a little Amiga [Cracktro]( Style demo. I setup my devel enviroment using the WLA Assembler and vanilla Makefiles. Since i didn’t get my [Super Wild Card]( Backupstation working, i tested the code against [ZNES]( Emu. Also i wrote some python scripts to generate sine tables and copper bar includes. I made some color gardients with [GIMP]( and converted then into asm includes to use then as raster interrupt lookuptables. Hm i think it took me week from start reading the 65816 specs, till i had this little thingy running. It’s far away from optimal code. Sometimes it’s jerking and no sound also. But so what, my first SNES release and iam proud that i got something runing on that machine. Learned how use [HDMA]( tables and about [Nintendo’s]( weired [memory map]( memory mapping 2.txt) (what is a zero page ???never had an [C-64](….So what did come out? Have look at it.


[Picture 1](

[Picture 2](

[Picture 3](


Comments closed

AVR Matrix? Who needs a VU-Meter for XMMS ?

Not me? Just did some more or less useful stuff with my [STK-500 dev boad]( I took 64 leds and formed a **8×8 matrix** out of them, solderd them onto 2 layers of ciruit boards. The leds are connected to 2 8Bit IO-Busses of an **Atmel AT90S8515**. I use one bus to select a row and the other bus to write on byte into a led-row. since iam changing the rows very quick, you won’t see an flicker. actually it’s 100hz refresh rate.

Then i a wrote a litte library in C using [AVR-GCC]( to access the matrix like an framebuffer. Also funny stuff like scroll text is included in that lib. On top of this a wrote some code to interface the Atmel to PC’s serial port. That incoming data from the SIO get’s displayed on the led matrix.
So that an **echo “\xFF” > /dev/ttyS0** on the linux box will light up one row of the led matrix.

Last but not least i took a [XMMS]( template plugin. Reworte it so the level output of the vu-meter is cutted down to 8 values. These values get sent to the PC’s serial interface.that’s it.

![AVR Matrix](
![AVR Matrix](

[Picture 1](

[Picture 2](

[Picture 3](



1 Comment

p910i and SyncML hell

I managed to get my p910i synced against my kde desktop pim. i wrote a little script so setup a ppp conection via bluetooth to my p910i mobile.I used multisync as application wich is able to use my kde addressbook resource.

Here is a list of the [gentoo]( packages i have used

* net-wireless/bluez-utils
* net-wireless/bluez-libs
* app-pda/multisync (USE=”kdepim”)
* net-dialup/ppp
* net-analyzer/ngrep

How it works:

* turn on the USB Bluetooth on your computer. Stop any daemon like kbluetoothd because this will interfere the communication
* create a sync pair in multisync:

1. first plugin is **KDE Addressbook**
2. second plugin is **SyncML**
3. goto SyncML plugin option and select **http** as transport protocol
4. enter some password for the connection

* setup the sync profile on your p910i

1. open **Remote Sync** application
2. goto preferences dialog and enter username **syncml** and the passwd you used in the multisync plugin config
3. enter the server address **** and quit the dialog
4. goto the main window click the sync task **calendar**
5. enable this task and assign the database name **addressbook**

* turn on the P900 Bluetooth and connect to your computer
* look up baddr of the p910i: **hcitool scan**
* run sdptool to add a serial port service: **sdptool add SP**
* run rfcomm to listen on channel 1: **rfcomm listen 0 1**
* run rfcomm to connect to the P900 bluetooth serial cable: **rfcomm connect 2 xx:xx:xx:xx:xx:xx 1**
* the latter rfcomm will connect to the P900 but the P900 will disconnect immediately;
* the P900 will then initiate a connection to the computer to connect to the rfcomm listening on channel 1;
* run the as root /usr/sbin/pppd server using: **pppd rfcomm0 noauth debug nodetach**
* just say **connect** on the p910i if you are asked to select an account for a new internet connection. i just used my standard gprs account. don’t worry this connection won’t be used actually for syncing. just to keep the symbian os happy.
* as root start ngrep to watch network interface: **ngrep -d ppp0**
* finally you click the **sync** button in the **Remote Sync** application
* you should see immediately some http packets on console where you have started ngrep.if not there is something wrong.

1. check if the pppd daemon is still runing and connected
2. double check all ips in the mobile phone setttings

**known problems:**

* KDE Address plugin doesn’t handle **uft-8** encoding correct, so contacts with special chars will be broken on your phone but will not
yield an sync conflict on the secound or third sync.Current CVS version of multisync should address this problem, but a didn’t try the most
recents checkouts.
* pppd connection seemed to be a little unstable, try you tweak connection settings
using this pppd flasgs: **lcp-echo-failure 10 lcp-echo-interval 86400**

if you are familiar with all tools and settings you can use this script so that can avoid using 4 open terminal windows to sync your mobile 🙂



        kill -TERM $pid_2
        sleep 0.1
        kill -TERM $pid_1
        ps ax | grep "rfcomm"
        exit -1

        echo "########################################################"
        echo $*
        echo "########################################################"

trap cleanup 2
sdptool add SP
debug "Listen RFCOMM"
rfcomm listen 0 1 &
sleep 0.2
debug "Connect RFCOMM  ${baddr}"
rfcomm connect 2  ${baddr} 1
sleep 4
while true
        debug "try PPPD $failed"
        sudo  /usr/sbin/pppd rfcomm0 noauth debug nodetach ${ip_local}:${ip_remote}
        if [ $failed -eq 10 ]
        sleep 1



{{_i}}Test Page{{/i}}

{{_i}}Your one support software for your customers‚ favorite messaging channels.{{/i}}

  • {{_i}}Website chat{{/i}}

  • {{_i}}Messaging CRM{{/i}}

  • {{_i}}Shared inbox{{/i}}

  • {{_i}}Chatbots{{/i}}

Comments closed