Join us on Discord!
You can help CodeWalrus stay online by donating here.

Visicom Textphone Reverse-engineering

Started by Keoni29, November 17, 2014, 10:39:48 PM

Previous topic - Next topic

0 Members and 25 Guests are viewing this topic.

Keoni29

Here is a sample of what the serial output looks like. After this boot message you can type text in the terminal and it will echo every character back. It does not process the input yet.

I am going to write a simple monitor program that allows me to read/write from/to memory locations. This way I can find out how certain aspects of the device work such as the video chip.
If you like my work, why not give me an internet?

Dream of Omnimaga

It would be cool if you ported Illusiat 81 to this :P

Also this needs an ASCII :walrii: 
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Keoni29

Started working on the monitor program. The source can be found here:  https://github.com/keoni29/visicom
If you like my work, why not give me an internet?

Dream of Omnimaga

  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Keoni29

RX buffer
User text input is now buffered. You can read bytes from the buffer sequentially as a stream. The buffer is 64 bytes long.
Serial and keyboard use the same input buffer, so the main program does not see the difference between my computer controlling it or the build-in keyboard. This makes things a bit easier.

TX
Serial output is still unbuffered, but I want to make a text output buffer as well. This could be useful if I want to print text to both the screen and serial without slowing down the main program.
If you like my work, why not give me an internet?

Dream of Omnimaga

  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Keoni29

Right now serial speed is 1200 baud for stability, but I might be able to crank it up to 19200.
1200 baud means about 110 characters per second.
If you like my work, why not give me an internet?

Duke "Tape" Eiyeron

Aw yess. Could set it to the 9600 bauds standard?
  • Calculators owned: A lot.

Keoni29

#53
The crystal frequency used to drive the clock generator is slightly off, so the closest thing to 9600 is 9560 baud. It might be fine. I am gonna test this in a bit.

Edit: Sending data with this slight difference in baud rate works fine, but receiving it results in some errors. I should get a crystal with the right frequency.
The frequency it runs on at the moment is 4,4336MHz and what I need is 4,4544MHz. I bet they used this crystal frequency because it was used a lot in television equipment, so it was cheap and close enough.
If you like my work, why not give me an internet?

Keoni29

I just pushed todays commits to the monitor program. It can now detect bad user input and it will respond adequately :trollface:

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:
4000 12 3456 AB CD EF

12AB65cd33 6692aB

Example of bad input & punishment:
Hello
?
help
?
h
?
:q!
?
001 55 Ab
?
0001 55 Ab C
?
???????
?
MAKE IT STOP
?
If you like my work, why not give me an internet?

Dream of Omnimaga

You should make it so that you lose THE GAME :trollface:
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Keoni29

Too many characters. Only got 4k to work with at the moment.
If you like my work, why not give me an internet?

Dream of Omnimaga

How does THE GAME doesn't fit in 4K? <_< (no I didn't mean to include the trollface :P)
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Duke "Tape" Eiyeron

"YOU LOST\n" 10 bytes. Sold. (edit because I forgot the null character)
  • Calculators owned: A lot.

Keoni29

I have plans of porting the operating system I have on my cbs6000 and z820 to the visicom. Because these three machines have different cpu architectures the OS has to be written from scratch every time.
If you like my work, why not give me an internet?

Powered by EzPortal