Close

Memory Cleared, Defaults Set, take 5(?) + USB is slow.

A project log for Vintage Z80 palmtop compy hackery (TI-86)

It even has a keyboard!

eric-hertzEric Hertz 07/28/2021 at 00:540 Comments

5:22PM

I wrote a program that's a bit like a hex viewer for the flash... it goes through a significant portion of each page, screen by screen, press enter at each screen to continue... literally hundreds of screen-fills/Enters until complete. i ran it from the prompt via ASM()... no way to exit early. Impatient, I pulled the battery.

ASMIDE woulda "Memory Recovered."

5:31PM

Not bad... 100bytes per second... memory recovered from last backup to compy. Not nearly as long as I'd've expected.

Which reminds me... I did some math that may suggest 100B/s is about the limit when using a USB->Serial dongle and a blacklink cable... basically: each bit requires at least four ioctl read/writes from/to the handshaking lines. That's 8*4=32 USB transactions per byte. Say a USB packet is 256 bytes, that's 8192 USB bytes per calculator byte. USB at 1.5Mbps (bits, not bytes) / 8192 = 183 calculator bytes per second. I dunno what I'm getting, exactly, but tilp says "0.1KB/s"

Hey, I ain't complaining... it works. But, now having done that math, my intent to try to speed up the connection library any further are definitely put on hold. Heh!

I do have a couple ideas of potential physical hacks... e.g. rewire (one wire, heh) to tx/rx might speed it up by 150% if /really/ hacked (could fit two transitions in a serial frame). 

Or ideas of software hacks... e.g. TI-OS seems to have the ability to override the linking functions with user code... could we bit-bang Async Serial on the link port? 9600bps, 4800bps... heck, even 2400bps.

But, for now... 100Bps is faster'n I thought, especially since I figured out how to transfer a whole folder's worth of files in one drag-drop.

Back to Coding. my library function WaitEnt clearly needs to watch the 'on' button, too... and somehow exit the program (safely) when pressed. And my flashWrite program needs a timeout.

Discussions