Skip to content

optixx Posts

Bildschirmtext (BTX)

Being a kid from the 80ies, i never came around using the german Bildschirmtext service. Luckily I found a recent implementation of the BTX protocol with some pages from the late 80ies and early 90ies.

Run the BTX server

brew install socat
git clone https://github.com/bildschirmtext/bildschirmtext
cd bildschirmtext
python3 -m virtualenv env
source env/bin/activate
pip install -r requirements.txt
cd server
socat TCP-LISTEN:20000,reuseaddr,fork 'exec:python neu-ulm.py'

Compile and run the client

brew install sdl2
git clone https://github.com/optixx/btx_decoder
cd btx_decoder/sdl
make
./btx_sdl 127.0.0.1:20000

Usage

The guest user (user 0, co-user 1) has an empty password, so you can log in as a guest by pressing “#” 3x at startup (or DCT once). You can define your own users by creating files in users/ and secrets/.

*00#: Retransmit page (in case of transmission errors)
*09#: create page again (or reload from database)
*#: return to the previous page
*page number#: navigation to a specific page
[0-9] and #: navigation to a following page
**: deletes the input
*9#: logs off the user
Comments closed

Amiga style PSP Demo

I have been working on a Amiga style PSP demo using some traditional Amiga OCS influenced demo effects. It started with porting the FC player to the PSP, later i added the sine scroller effect and logo swing.

Usage

  1. Install docker image with psp toolchain
  2. Create pspdev-docker.sh script into your path
  3. Compile
pspdev-docker.sh make clean all 
  1. Run elf in the emulator
/Applications/PPSSPPSDL.app/Contents/MacOS/PPSSPPSDL sine-deme.elf
Links
Comments closed

Learning Atari 800 XL Assembler

I revisted my Atari code snippets that i collected over the last 2 years to learn Atari 800 XL assember. I created a Github repo to make it easy yo access them.

Hello World DLI

Weganoid Game

Usage

  1. Install mads assembler into your path
  2. Install atari800 emulator into your path
  3. Create helper scripts into your path to start the emulator
#!/bin/sh
ATARI_PATH="~/Devel/arch/atari"
${ATARI_PATH}/bin/atari800 -pal -xe -xlxe_rom ${ATARI_PATH}/roms/ATARIXL.ROM -video-accel -win-width 800 -win-height 600 "$1"
  1. Build and run an example
cd hello 
make all

Links

  • mads – MADS multi-pass crossassembler
  • atari800 – Atari800 portable and free Atari 8-bit emulator
  • sample code – Atari 800 XL code samples
Comments closed

A modern toolchain for Vectrex development

Recently i read an article about the Vectrex game console. I kew the system a bit, also played it when it came out in the early 80s at a friends house. But i never really hat a connection to the system, like i have for the SNES or the Amiga computer.

Since writing an emulator is on my programming bucketlist, i recenlty took a look at simple platforms that i could start to write an emulator for. I looked into stuff like Chip8 and the GameBoy that seemed easy to emulate, in comparison to a PS1 or N64.

So the Vectrex got interested. I started reading its specification. It all seemed straigth forward to me. The Vectrex uses a Motorola 6809 CPU, which is not a super common 8bit CPU, but was used in the Dragon home computers. Otherwise there is an AY-3-8912 for the sound and 1KB RAM and 8KB ROM.

To get started i took a look into homebrew scene, to figure out getting own code runing on the machine. As usual for systems from that time it was mainly programmed using machine code. Which i kind of like, but also implicates a higher learning curve. There is typically no middleware or frameworks that helps you with anyhting, so you have to learn all the HW registers and figure out how to stuff.

So i was surpised to find a of modern c toolchain with some libc and bios support. I ended up following the instructions for a modern c based toolchain.

The toolchain basically consists of a c compiler, assmbler & linker and a emulator. It also came with and SDL based Emulator, but it would not run on current MacOS because of the unmaintained/bugfixed SDL library. So i decided to port the the emulator to SDL2, which was fun learning the render contexts of SDL2.

So thats what iam using

  • CMOC – The C compiler
  • LWTOOLS – Assembler and linker for the 6809
  • VecX – Vectrex emulator

I started off modifying the c examples that came from Johan who ported the CMOC compiler suite to the Vectrex system.

This is what i came with, you can find the code in my sample repo.

VecX Emulator

Comments closed

Revisited an old MacOS Application

8 Years ago when the App Store for MacOS Apps was quite new i develop a little utility app for managing clipboard contents. The app was definitely inspired by Linux apps that i used all the time and was i really missing such a tool on MacOS.

For me it was the first time writing an OSX App using Objective-c. Took me a couple of weeks to get everything working how i wanted it. I went all in and setup an Twitter account and Blog for it to do some Marketing. Some i had the crazy to ask money for the app 🙂 And it never took off, i have maybe sold 50 Apps. After a year the Apple developer account subscription ran out. Which i never renewed and so the app got removed form the AppStore. But i also kept using the tool and i gave to co-workers in my company.

Recently i was approached by our marketing team if we could release the app and add a Userlike branding to it, so we can use it as a free download in a blog article, which seems to be a interesting thing to try out.

For me it was interesting to revisit this project after 8 years and make it work on Mojave and Xcode 10.3. First of all i have to say it took me like 5 minutes to get back into Xcode. I mean they must have added quite a lot of features to it over the the years but still it feels and works the same.

To make it compile, I had to fix a couple of build settings regarding OS versions and arch. I did re-build of one external framework that i was unable to link with current Mojave built app. To make the app ready for a release i re-branded it to look like Userlike tool.

It took me a couple of hours to make this app release ready again. I spent the most time to enroll into the developer program, where i was struggling with the DUNS number for my company, that includes non roman characters which are not allowed for the company name in the Apple developer program signup form. So I had to go thru the customer support to sort that out.

Comments closed