Skip to content

Toebes' Timex Datalink WristApp assembler wrapped in a Docker image with Wine

Notifications You must be signed in to change notification settings

synthead/timex-datalink-assembler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 

Repository files navigation

Docker image for Toebes' Timex Datalink assembler

This repo wraps Toebes' excellent Timex Datalink assembler for the Datalink 150 and 150s in a Docker image with Wine! Paired with a helper script called asm6805, this Win32 program from 1997 is now presented as a platform-agnostic CLI experience:

$ asm6805 01_hello.zsm 01_hello.zap
Assembling 150 Version...
Assembling 150S Version...
Assembly successful: Code=97 Bytes

Usage

Here is the usage page for asm6805:

Usage: asm6805 ASSEMBLY_FILE [OUTPUT_FILE]
Assemble a WristApp or sound scheme for the Timex Datalink 150 and 150s.

ASSEMBLY_FILE is a path to a ZSM assembly file.
OUTPUT_FILE is a path to write the ZAP or SPC file (defaults to out.zap or out.spc).

ZSM format documentation: <https://www.toebes.com/Datalink/wristapps.html>

System requirements

The asm6805 script will build a Docker image on its first run, and whenever it needs to build an updated image. Docker must be installed and running with a connection to the internet to build the image.

If you need to install Docker, you can get it here.

Uploading with timex_datalink_client

The assembled ZAP files can be synced to your Timex Datalink watch using the timex_datalink_client Ruby library with a Notebook Adapter like so:

require "timex_datalink_client"

models = [
  # For the Timex Datalink 150s, use TimexDatalinkClient::Protocol4 instead.

  TimexDatalinkClient::Protocol3::Sync.new,
  TimexDatalinkClient::Protocol3::Start.new,

  TimexDatalinkClient::Protocol3::WristApp.new(zap_file: "my_wristapp.zap"),

  TimexDatalinkClient::Protocol3::End.new
]

timex_datalink_client = TimexDatalinkClient.new(
  serial_device: "/dev/ttyACM0",
  models: models,
  verbose: true
)

timex_datalink_client.write

For more information on how to use timex_datalink_client, see the following links:

If you don't have a Timex Notebook Adapter, you can create a 100% compatible one using an Arduino board with timex-datalink-arduino. If you'd like to sync your watch with a CRT, see timex_datalink_crt.

Toebes' excellent assembler and tutorial

The Dockerfile and asm6805 wraps the excellent VAsm6805.exe assembler and the very thoughtful header files written by John A. Toebes, VIII. Toebes' website contains a wealth of knowledge, excellent tools, great tutorials, and documentation of inspirational quality. If you are interested in learning about how to write WristApps for your Timex Datalink 150 or 150s, you should definitely visit Toebes' Datalink site!