--- title: "2068 Full Screen Input" type: "article" slug: "2068-full-screen-input" url: "http://localhost/article/2068-full-screen-input/" markdown_url: "http://localhost/article/2068-full-screen-input.md" published_at: "2021-06-21T17:47:37+00:00" modified_at: "2026-06-27T09:17:09+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "Here is a subroutine for the 2068 to simulate the full screen input feature of most other computers. It was originally written for my son to practice his school spelling. Often, these exercises required that whole sentence he typed in and checked for correctness against a master list (data), but the omission of a period…" category: - name: "Timex Sinclair User Group Newsletter: Ottawa Chapter" slug: "timex-sinclair-user-group-newsletter-ottawa-chapter" taxonomy: "category" url: "http://localhost/category/periodicals/timex-sinclair-user-group-newsletter-ottawa-chapter/" post_tag: - name: "1984" slug: "year-1984" taxonomy: "post_tag" url: "http://localhost/tag/year-1984/" - name: "Best of Timex/Sinclair 2068 Articles and Documents" slug: "ts2068best" taxonomy: "post_tag" url: "http://localhost/tag/ts2068best/" - name: "Full Text" slug: "fulltext" taxonomy: "post_tag" url: "http://localhost/tag/fulltext/" - 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: "Jim Turner" slug: "jim-turner" taxonomy: "indiv" url: "http://localhost/indiv/jim-turner/" publication_r: id: 36591 title: "Timex Sinclair User Group Newsletter: Ottawa Chapter" type: "periodical" url: "http://localhost/periodical/timex-sinclair-user-group-newsletter-ottawa-chapter/" authors: "Jim Turner" authors_r: - name: "Jim Turner" slug: "jim-turner" taxonomy: "indiv" url: "http://localhost/indiv/jim-turner/" volume: "1" issue: "1" issues_articles: - id: 36592 title: "Timex Sinclair User Group Newsletter: Ottawa Chapter v1 n1" type: "issue" url: "http://localhost/issue/timex-sinclair-user-group-newsletter-ottawa-chapter-v1-n1/" pages: "3-4" pubdate: "April - June 1984" archive_link: false --- Here is a subroutine for the 2068 to simulate the full screen input feature of most other computers. It was originally written for my son to practice his school spelling. Often, these exercises required that whole sentence he typed in and checked for correctness against a master list (data), but the omission of a period or an accent would necessitate the retyping of the whole sentence using the TS input routine. With ‘full screen input’, a wrong entry only produces a buzzer and then returns to the input routine and mere editing is required — an attractive feature for my son. All present editing features are supported: move right/left, caps shift, graphics, delete. Full screen input has been written as subroutine which needs to be supplied with values for ‘X’ and ‘C’ (line and column) before calling. It returns A$ to deal with as you like. There is plenty of room for improvements and additions: word wrap, an underline cursor, an inverse video feature. As you see it here, it works. ``` 10 REM FULL SCREEN INPUT By Jim Turner 11 LET a$="": LET y=1 15 PRINT AT x,c; FLASH 1;"L" 25 LET i$=INKEY$: IF i$="" THEN GO TO 20 30 IF i$=CHR$ 8 THEN GO TO 200 40 IF i$=CHR$ 9 THEN GO TO 300 50 IF i$=CHR$ 12 THEN GO TO 400 60 IF i$=CHR$ 13 THEN GO TO 600 70 IF i$=CHR$ 15 THEN GO TO 500 80 IF CODE i$<32 THEN GO TO 20 95 LET a$=a$( TO y-1)+i$+a$(y TO ): LET y=y+1 100 REM PRINT TO SCREEN 101 PRINT AT x,c;a$( TO y-1); FLASH 1;"L"; FLASH 0;a$(y TO);" " 105 BEEP .005,20 110 GO TO 20 200 REM MOVE LEFT 201 LET i$="" 210 LET y=y-(1 and y>1) 220 GO TO 100 300 REM MOVE RIGHT 301 LET i$="": LET y=y+(y<=LEN a$) 310 GO TO 100 400 REM DELETE 405 LET y=y-(1 and y>1) 410 LET a$=a$( TO y-1)+a$(y+1 TO ) 420 GO TO 100 500 REM GRAPHICS 501 PRINT AT x,c;a$( TO y-1); FLASH 1;"G"; FLASH 0;a$(y TO ) 510 LET i$=INKEY$: IF i$="" THEN GO TO 510 520 PAUSE 20: LET i$=CHR$ (CODE(i$)+47) 530 GO TO 95 600 PRINT AT x,0;a$;" " 610 RETURN ```