--- title: "Character Set Rotation" id: 76368 type: "computer_media" slug: "character-set-rotation" url: "http://localhost/computer_media/character-set-rotation/" markdown_url: "http://localhost/computer_media/character-set-rotation.md" published_at: "2026-11-11T08:03:05+00:00" modified_at: "2026-11-11T08:03:05+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/11/character-set-rotation-1.png" excerpt: "Rotate the character set a quarter turn at a time, or mirror it, with a compact machine-code routine and a demonstration that prints every orientation." post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" genre: - name: "Font" slug: "font" taxonomy: "genre" url: "http://localhost/type/font/" media_type: "Program" download_url: "https://archive.org/download/timex-sinclair-software-archive/Character%20Set%20Rotation%20%281984%29%28-%29%28TS2068%29%28US%29%28Program%29.zip" tsrun_member: "Character Set Rotation (1984)(-)(TS2068)(US)(Program)/Character Set Rotation (1984)(-)(TS2068)(US)(Program).tap" mediadate: "1984" images: - url: "http://localhost/wp-content/uploads/2026/11/character-set-rotation-1.png" article_media: - id: 19801 title: "Character Set Rotation" type: "article" url: "http://localhost/article/character-set-rotation/" media_type_tags: "Font" license: false --- # Character Set Rotation An 80-byte machine-code routine that rotates the character set 90 degrees counterclockwise, with or without mirror imaging. An initialization routine (USR 64324) copies the ROM characters to RAM at FC00; the rotate routine (USR 64256) turns every character a quarter turn, and POKE 64281,9 before one call adds a mirror image. The demo prints the alphabet in all four rotations and then mirrored. Only text printed after a rotation changes, because the TS2068 has a bit-mapped display. In the article you enter the bytes with a short INPUT/POKE program and save them as “rotate” CODE; the tape here has that CODE block and the demo, with a two-line loader added in front that loads both. Type RUN after loading. Published in Syntax June 1984 ([Character Set Rotation](https://timexsinclair.com/article/character-set-rotation/)). ## Source Code ``` 5 CLEAR 64255 10 LET init=64324 20 LET rot=64256 30 LET mir=64281 35 PRINT "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 36 PRINT 40 RANDOMIZE USR init 50 POKE 23606,0: POKE 23607,251 55 FOR x=1 TO 4 60 RANDOMIZE USR rot 70 PRINT "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 75 NEXT x 77 PRINT 80 POKE mir,9 90 RANDOMIZE USR init 95 RANDOMIZE USR rot 100 POKE mir,1 105 FOR x=1 TO 4 110 RANDOMIZE USR rot 120 PRINT "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 130 NEXT x 160 RANDOMIZE USR init ```