Author Topic: Visicom Textphone Reverse-engineering  (Read 4694 times)

0 Members and 1 Guest are viewing this topic.

Offline Keoni29

  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2466
  • Rating: +291/-16
    • View Profile
    • My electronics projects at 8times8
Visicom Textphone Reverse-engineering
« on: January 11, 2015, 12:50:53 pm »
Project page: http://8times8.eeems.me:81/project/software/visicom/

The Visicom is a textphone for deaf people from the 80's. It has a keyboard, video output and built in modem. You could use it as a textphone using the textphone protocol or as a teletype (tty) using the built in modem.

I bought this at a thriftshop because it looked interesting.
I decided to crack it open and find out exactly what makes it tick. Detailed documentation can be found on my project page.


Guts

Left: Video output. You're greeted with a dutch menu. This image shows B&W video, but there is a switch inside the device which enables 8 color video.
Right: Rom reader device I built to dump the firmware. The disassembly can be found here: http://8times8.eeems.me:81/project/software/visicom/disassembly.php

I found an open-source disassembler written in Golang for the tms7001 microcontroller that is inside the visicom, but it was really buggy. I managed to fix a lot of the bugs. I published the disassembled rom on my website. Using javascript I made all addresses operands links so you can jump by clicking them.
Rom disassembly can be found here: http://8times8.eeems.me:81/project/software/visicom/#h2

I am now able to write my own code for the device. So far I can:
- Set up the serial clock generator.
- Control the MCU's internal I/O port.
- Use interrupts
- Read and write data over serial (using the ACIA)
- Read keystrokes from the keyboard

I solved some interrupt problems by looking at the disassembly. It seems like the people who designed this thing ran into the same problems as I did :P
Next I want to output characters on the screen.

« Last Edit: January 11, 2015, 01:57:33 pm by Keoni29 »
If you like my work: why not give me an internet?








Offline Keoni29

  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2466
  • Rating: +291/-16
    • View Profile
    • My electronics projects at 8times8
Re: Visicom Textphone Reverse-engineering
« Reply #1 on: January 17, 2015, 08:12:24 am »
I have been working on a monitor program that allows me to interact with the visicom via serial. I got serial communication and buffering working, but I cannot get string parsing to work because of some weird bug. I am now rewriting the parser.

The monitor will be used for reading and writing from and to memory respectively.
Monitor syntax
- Valid characters are 0-9 and A-F and spaces as separator characters.
- Valid hexadecimal needs to be a multiple of two characters long.

Example of good input:
Code: [Select]
4000 12 3456 AB CD EF

12AB65cd33 6692aB
Example of bad input & punishment:
Code: [Select]
Hello
?
help
?
h
?
:q!
?
001 55 Ab
?
0001 55 Ab C
?
???????
?
MAKE IT STOP
?

Source can be found on my github page: http://github.com/keoni29/visicom
If you like my work: why not give me an internet?