RSS icon Home icon
  • Rise and fall of WAP

    Posted on February 19th, 2019 admin No comments

    In the perspective of an engineer…

    I started working as a Service Quality engineer at a telecom company in 2001. After many small projects a manager asked me whether I can create a software to grab the content of our entire mobile site to verify everything, literally (broken links, grammar, changes, pictures etc). Mobile sites were using WAP technology back then and there was no deep knowledge on how to communicate via the WAP protocol. I got a small byte array (less than 50 bytes long) from a WAP Gateway operator which meant to be the WAP request. The software used it to generate the WAP request by appending the URL to it. That was a simple WAP Class 0 (connectionless) transaction. I sent one UDP packet with the request then the WAP Gateway sent me the response. That was it.

    Read the rest of this entry »

  • Software controlled infrared device

    Posted on February 3rd, 2019 admin No comments

    After a long silence I pushed myself to create a new article. I have many half written materials I can choose from. This time I finished my IR device story.

    In 2008 my then boss came up with an idea: End-to-End testing/monitoring of the TV services by using real set-top-boxes (STB). One of the interesting part of this project was the development of the software controlled infrared remote device. E2E mean we had to control an STB just like clients do, so a computer controlled IR had to be developed. We intended to simulate the original remote, so I had to watch-and-learn the signal it sent.

    Read the rest of this entry »

  • Hacking the SjASMPlus Z80 assembler

    Posted on November 1st, 2016 admin No comments

    I like SjASMPlus because it is small, portable (one exe, no install) and supports writing SNA format, which means it can directly assemble the source into SNA emulator snapshot file. This is very handy if disassembling a snapshot, reverse engineering the code, then comparing the compiled source with the original snapshot. However it has a minor drawback.

    Read the rest of this entry »

  • Slow page load (IPv6) with Internet Explorer 11

    Posted on November 21st, 2015 admin No comments

    Recently, I found a website which loads very slowly in Internet Explorer 11 (under Windows 7) while other browsers did not affected (Chrome, Firefox). The site has both IPv6 and IPv4 addresses. Tcpdump showed that connection to the IP address is failed, Destination unreachable ICMPv6 messages returned in reply to SYN packets.

    Despite the address is unreachable the operating system retransmists the SYN packets in a 9 seconds interval. There was a 12 seconds silence, and after a total waiting of 21 seconds the browser switched to the IPv4 address then the connection established under 2 milliseconds. Google Chrome behaves differently: after 300 milliseconds of the first failed IPv6 SYN attempt it immediately switched to IPv4 which is cannot be noticeable by the user. No annoying waiting, no unnecessary retransmissions.

    An hour surfing on the net did not reveal any valid explanation. Interestingly, Internet Explorer 9 suffers from the same phenomena. I suppose this is by desing albeit very frustrating.

    Read the rest of this entry »

  • Delphi compile timestamp

    Posted on November 21st, 2015 admin No comments

    It could be useful to know the build date of the executable. In most situations this is the file’s timestamp.
    It is quite simple to read it out in TDateTime format:

    ExeDate := FileDateToDateTime(FileAge(ParamStr(0)));

    However, there are situations when the file’s timestamp is altered and the build date is lost.

    Read the rest of this entry »

  • Ubuntu Grub headaches

    Posted on June 19th, 2015 admin No comments

    Today I had to install an Ubuntu 14.04.2 LTS system on a two-disk PC, with software RAID1, which I did many times before.

    The disks and raid setup went fine, but when reaching the GRUB install it reports “fatal error”.
    I skipped the bootloader install and finished the OS setup. Of course, the system didn’t boot…

    After a little googling, I can resolve all booting problems.

    Read the rest of this entry »

  • Microcontroller music

    Posted on March 27th, 2015 admin No comments

    Many years ago I wanted to create an indoor game which requires an explosion sound effect. I opted for a microcontroller because it’s cheap and easy to program. But didn’t know exactly how to produce that explosion sound. It was obvious that I have to synthesize the sound instead of playing a recorded sample.
    First a PRNG (Pseudorandom Number Generator) came to my mind but it produces a white noise which is not quite like a boom effect. That’s why I turned to ZX Spectrum beeper music. Those guys in 80s did great sound effects with an 8-bit CPU and a simple buzzer.

    Read the rest of this entry »

  • Bomber Man / Dyna Blaster for Windows

    Posted on January 6th, 2015 admin No comments

    Bomber Man may be the more popular name of this game, but in 1992 for me it was Dyna Blaster on the Amiga. In 2010 I converted the Amiga version to Windows. This game has so many conversions but it was fun to made my own version. Tests were successful on Windows XP and Windows 7 (32-bit and 64-bit). It’s just a single exe, no install is required.

    Click on the picture to download the game

    Read the rest of this entry »

  • Atarisoft’s Pac-Man

    Posted on January 6th, 2015 admin No comments

    In December of 2000 I started a Pac-Man game conversion from the ZX Spectrum. It was one of my favourite Spectrum game in the 80s. Simple but addictive. My original intention was to build a 4K or 16K game for DOS, however I lost my interest during the process. It is playable, so I decided to save it from the dust.

    Read the rest of this entry »

  • Disassembling the MICRO-POKEer ROM firmware

    Posted on December 31st, 2014 admin No comments

    The MICRO-POKEer is a Multiface-like device for the unexpanded 48K Spectrum, introduced around 1988-1989 by a Hungarian company, Micro-Studio.

    Basically it is useful to cheat games (i.e. poke infinite lives), save snapshots (e.g. save game progress, hack programs, remove copy protections) and save active screen content (e.g. print, game maps).

    MICRO-POKEer capabilities:

    * Freeze programs (NMI button)
    * Load/Save screen content (16384 – 23295, 6.75 KBytes)
    * Load/Save the entire RAM (16384 – 65535, total 48 KBytes)
    * Turbo Load/Save (double speed)
    * Peek/Poke/Jump to memory location
    * Warm reset the Spectrum
    * Hard reset

    I own one device and reverse-engineered it in 2010. Firmware version is 1.6

    Read the rest of this entry »