--- title: "Try These" type: "article" slug: "try-these-5" url: "http://localhost/article/try-these-5/" markdown_url: "http://localhost/article/try-these-5.md" published_at: "2022-10-07T12:25:27+00:00" modified_at: "2026-08-05T12:21:43+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "Overprinting A demonstration of the TS2068's OVER and INVERSE print attributes. A base string A$ is drawn at a fixed screen position, then a second string B$ is drawn on top of it in each of the four combinations of OVER 0/OVER 1 and INVERSE 0/INVERSE 1, with each result labelled by the o and…" category: - name: "LISTing Newsletter" slug: "listing-newsletter" taxonomy: "category" url: "http://localhost/category/periodicals/listing-newsletter/" post_tag: - name: "Best of Timex/Sinclair 2068 Articles and Documents" slug: "ts2068best" taxonomy: "post_tag" url: "http://localhost/tag/ts2068best/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" - name: "Type-in program" slug: "type-in-program" taxonomy: "post_tag" url: "http://localhost/tag/type-in-program/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "William J. Pedersen" slug: "william-j-pedersen" taxonomy: "indiv" url: "http://localhost/indiv/william-j-pedersen/" publication_r: id: 38992 title: "LISTing Newsletter" type: "periodical" url: "http://localhost/periodical/listing-newsletter/" authors: "William J. Pedersen" authors_r: - name: "William J. Pedersen" slug: "william-j-pedersen" taxonomy: "indiv" url: "http://localhost/indiv/william-j-pedersen/" issues_articles: - id: 40128 title: "LISTing Newsletter December 1985" type: "issue" url: "http://localhost/issue/listing-newsletter-december-1985/" pages: "20" pubdate: "December 1985" archive_link: false --- # Try These ### Overprinting A demonstration of the TS2068’s `OVER` and `INVERSE` print attributes. A base string `A$` is drawn at a fixed screen position, then a second string `B$` is drawn on top of it in each of the four combinations of `OVER 0`/`OVER 1` and `INVERSE 0`/`INVERSE 1`, with each result labelled by the `o` and `i` values that produced it. A second routine lets the user lift a result straight off the screen and record it into one of the 21 UDG slots (`a` through `u`), so a combination worth keeping can be saved. #### BASIC Listing ``` 1 REM 1985 William Pedersen 2 REM 4 REM OVERPRINTING 6 REM This test demonstrates the way the INVERSE and OVER functions effect what you can put on the screen. 8 REM 10 REM A$ represents what is already there. 12 REM 14 REM B$ is what you write on top of it." 16 REM 18 REM The binary number in front of the results is made up from the OVER and INVERSE values. 20 REM 22 REM If you like what you get, you can BREAK and GO TO 2000. Then you can assign it as a UDG. 24 REM 26 REM Double Take 28 REM 1001 LET X$="(## ,\{020}## \{020})$\{020}$$\{020}$(## ,\{020}## \{020})" 1003 LET Y$="( OO, OO) $$\{020}$$\{020}(\{020} OO\{020},\{020} OO\{020})" 1005 CLS : PRINT ''''"Try: X$ for A$, Y$ for B$."''"(DELETE both quote marks first.)" 1007 INPUT "A$=";A$'"B$=";B$ 1009 PRINT ''"A$= """;A$;""""''"B$= """;B$;"""" 1011 FOR o=0 TO 1: FOR i=0 TO 1 1013 PRINT AT 13+2*(i+o+o),0;o;i;" ";A$ 1015 PRINT AT 13+2*(i+o+o),5; OVER o; INVERSE i;B$; 1017 NEXT i: NEXT o 1019 PAUSE 0: GO TO 1005 1996 REM 1998 REM Load UDG 2000 REM 2001 INPUT "Which UDG character? ";a$ 2003 LET Addr=USR a$ 2005 FOR j=0 TO 7 2007 POKE Addr+j,PEEK (20517+256*j) 2009 NEXT j 2011 PRINT AT 20,0;"UDG's:"; BRIGHT 1;"ABCDEFGHIJKLMNOPQRSTU" 2013 PAUSE 0: GO TO 1005 ``` *** ### Grey Scale Graphics This is a fragment, not a complete program: it appears on the same page and in the same “LIST Group” column as two pieces explicitly signed “1985 William Pedersen” (Note Pad and Overprinting), but carries no such line of its own, and `GO TO 1000` at line 3060 has no matching line 1000 anywhere on this page. The visible code is a self-contained subroutine, evidently meant to be called from a menu or driver program that isn’t part of this scan. What the visible portion does: starting from the address of UDG `A`, it zeros out a block of 17 UDGs’ worth of bitmap space (`3010`–`3020`), then builds up the remaining 16 UDGs one at a time. Each new UDG starts as a copy of the previous one (`3040`, copying all 8 bytes down one slot), then two `DATA` values are read and poked into a fixed offset in both halves of the new UDG’s 8 bytes (`3050`). Read in sequence across 16 slots, this reads as an ordered dither sequence — each step adding a little more “on” pixel coverage to the previous pattern — which is a standard way to fake intermediate grey levels out of a 1-bit-per-pixel display, matching the title and the “WORKING” flash message shown while it runs. #### BASIC Listing ``` 3000 REM GREY SCALE GRAPHICS 3002 PRINT AT 11,12; FLASH 1;" WORKING " 3005 LET Grey=USR "A" 3010 FOR n=Grey TO Grey+8*17-1 3015 POKE n,0 3020 NEXT n: RESTORE 3100 3025 FOR n=1 TO 16 3030 LET Here=Grey+8*n 3035 FOR j=0 TO 7 3040 POKE Here+j,PEEK (Here+j-8) 3045 NEXT j 3050 READ U,V: POKE Here+U,V: POKE Here+U+4,V 3055 NEXT n 3060 GO TO 1000 3100 DATA 2,12,0,192,0,204,2,204,1,48,3,3,3,51,1,51,0,252,2,143,2,255,0,255,3,63,1,242,3,255,1,255 ```