Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Strobing on CLEAR using Tek4010 emulator / How to do Tektronix animation properly? #33

Open
1 task
hornc opened this issue Feb 11, 2023 · 2 comments
Open
1 task
Assignees

Comments

@hornc
Copy link
Owner

hornc commented Feb 11, 2023

Using https://github.com/rricharz/Tek4010 static graphics work perfectly:

tek4010 -noexit ./ct.py <(./CTBASIC.py examples/teapot.bas)

but the animations cause the screen to strobe white on CLEAR, which is very jarring.

tek4010 ./ct.py --hold 130 <(./CTBASIC.py examples/CUBE.BAS)

and

tek4010 ./ct.py --hold 130 <(./CTBASIC.py examples/ANIMTEST003.bas)

It's not because of the extra ANSI / RIS code I added (surprisingly), but it appears that the Tektronix ESC + FF causes the screen flash on reset, and that is the authentic behaviour -- which does not occur under xterm.

It looks like using ESC+FF between frames in not the standard way to run animations on a Tektronix display.

TODO:

Is is using "Write-Thru" mode, or specific erasing? I couldn't find clear descriptions of these features in the manual.

@hornc hornc self-assigned this Apr 21, 2024
@hornc
Copy link
Owner Author

hornc commented Apr 22, 2024

I last tested using Tek4010 SHA: commit 9c3cd7be921e3c27de8420dc807f7097b2561078

@hornc
Copy link
Owner Author

hornc commented Apr 22, 2024

PR #35 demonstrates write-thru mode animation and display storage which works on the Tek4010 emulator: https://github.com/rricharz/Tek4010

Write-thru (normal lines) is set by sending ESC + p. Other (dashed/dotted) line modes can be set with other charcter combinations, see Table F-3, Appendix F of https://vt100.net/tektronix/4014-um.pdf

Need to think on how best to manage timing...
ZX BASIC has PAUSE n, where n is in TV frames (50 or 60 Hz). This can't be translated reliably to BCT, other than padding with junk data to take time, but would depend on processing frequency.

Perhaps add an argument to set the baud rate / frequency / frame rate of ct.py output?

  • Frame rate might be the most natural setting: time taken for each CT program loop, we can force it to be at least t duration.
  • baud rate would set the speed of transmitted output characters... from a buffer

Current --hold seems to hang a program without any CLS. Seems like a bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant