--- title: "TS2068 Timachine – A Fix" type: "article" slug: "ts2068-timachine-a-fix" url: "http://localhost/article/ts2068-timachine-a-fix/" markdown_url: "http://localhost/article/ts2068-timachine-a-fix.md" published_at: "2020-10-27T17:17:26+00:00" modified_at: "2026-06-21T23:26:02+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "The purpose of this write-up is to explain what was done and why to enable large printer printing of the LIST report after compiling a program with TIMACHINE. The first obstacle was getting the large printer to print anything. PRINT after opening #3 to \"Ip\" only gave a dot and two dashes on the screen…" category: - name: "Sinc-Link" slug: "sinc-link" taxonomy: "category" url: "http://localhost/category/periodicals/sinc-link/" post_tag: - name: "Full Text" slug: "fulltext" taxonomy: "post_tag" url: "http://localhost/tag/fulltext/" - name: "TIMACHINE" slug: "timachine" taxonomy: "post_tag" url: "http://localhost/tag/timachine/" - 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/" indiv: - name: "George Chambers" slug: "george-chambers" taxonomy: "indiv" url: "http://localhost/indiv/george-chambers/" publication: "Sinc-Link" publication_r: id: 10240 title: "Sinc-Link" type: "periodical" url: "http://localhost/periodical/sinc-link/" authors: "George Chambers" volume: "10" issue: "1" issues_articles: - id: 26595 title: "Sinc-Link v10 n1" type: "issue" url: "http://localhost/issue/sinc-link-v10-n1/" pages: "16" pubdate: "January/February 1992" related_articles: - id: 39233 title: "TIMACHINE Review" type: "article" url: "http://localhost/article/timachine-review/" - id: 43280 title: "*D & *E Compilation Bug" type: "article" url: "http://localhost/article/d-e-compilation-bug/" - id: 6330 title: "TIMACHINE – A BASIC Compiler" type: "article" url: "http://localhost/article/timachine-a-basic-compiler/" - id: 47055 title: "TIMACHINE: A sort of review" type: "article" url: "http://localhost/article/timachine-a-sort-of-review/" - id: 46781 title: "TIMACHINE and FDD System Compatibility" type: "article" url: "http://localhost/article/timachine-and-fdd-system-compatibility-2/" - id: 46660 title: "TIMACHINE and FDD System Compatibility" type: "article" url: "http://localhost/article/timachine-and-fdd-system-compatibility/" - id: 44939 title: "Patch for *C, *D and *E bugs in Timachine" type: "article" url: "http://localhost/article/patch-for-c-d-and-e-bugs-in-timachine/" - id: 42064 title: "Bob’s Notebook: TIMACHINE" type: "article" url: "http://localhost/article/bobs-notebook-timachine/" - id: 23603 title: "Timachine – A Fix" type: "article" url: "http://localhost/article/timachine-a-fix/" - id: 22731 title: "TIMACHINE and the FDD System" type: "article" url: "http://localhost/article/timachine-and-the-fdd-system/" - id: 15430 title: "TIMACHINE on AERCO Disk" type: "article" url: "http://localhost/article/timachine-on-aerco-disk/" - id: 23251 title: "Bob’s Notebook: Printing and TIMACHINE" type: "article" url: "http://localhost/article/bobs-notebook-5/" - id: 21968 title: "Speed Comparison Between 2068 Pascal and Compiled Basic (Timachine)" type: "article" url: "http://localhost/article/speed-comparison-between-2068-pascal-and-compiled-basic-timachine-2/" - id: 22953 title: "Speed Comparison Between 2068, PASCAL and Compiled BASIC (TIMACHINE)" type: "article" url: "http://localhost/article/speed-comparison-between-2068-pascal-and-compiled-basic-timachine/" - id: 23244 title: "A Letter from Cameron Hayne" type: "article" url: "http://localhost/article/a-letter-from-cameron-hayne/" - id: 42115 title: "Bob’s Notebook: Peeking and Poking About" type: "article" url: "http://localhost/article/bobs-notebook-peeking-and-poking-about/" - id: 60061 title: "Comparing ZXbasic and TimeMachine" type: "article" url: "http://localhost/article/comparing-zxbasic-and-timemachine/" - id: 21687 title: "Peeking and Poking About" type: "article" url: "http://localhost/article/peeking-and-poking-about/" - id: 23604 title: "TS2068 Timachine – A Fix" type: "article" url: "http://localhost/article/ts2068-timachine-a-fix/" - id: 60057 title: "TimeMachine on Zesarux" type: "article" url: "http://localhost/article/timemachine-on-zesarux/" - id: 38500 title: "Sinclair Survival Column" type: "article" url: "http://localhost/article/sinclair-survival-column-5/" - id: 8097 title: "Machine Specifics: Orphans" type: "article" url: "http://localhost/article/machine-specifics-orphans-3/" product_reviews: - id: 26070 title: "TIMACHINE" type: "product" url: "http://localhost/product/timachine/" archive_link: false volumeissue: "v10n1" --- # TS2068 Timachine – A Fix The purpose of this write-up is to explain what was done and why to enable large printer printing of the LIST report after compiling a program with TIMACHINE. The first obstacle was getting the large printer to print anything. PRINT after opening #3 to “Ip” only gave a dot and two dashes on the screen at about line 1Ø. This was traced to the relocation of the Channels but not changing them when TIMACHINE initialized the location of any BASIC program. Unlike the TIMACHINE for SPECTRUM, the start-up for LKDOS In 2068 mode modifies the channels above “p” to go to locations just above the Channel addresses. When the location of the channel addresses were moved they still pointed to locations that were now occupied by the MC for TIMACHINE. These were changed to point correctly and the length of the MC was increased to include them in the SAVE instruction. The next problem was with the printout. In TIMACHINE this report is tabulated by “print at ” instructions which the large printer ignored. “Print a space” was substituted for all “print at” instructions except the ones that put the printing at column zero. The next problem was with the runtime numbers and the addresses of their locations. This was traced to the use of the IX register, which pointed to the location of the runtime addresses in the Display File. Each time the program sent the operation to print anything, LKDOS would reset the IX register for its use and the IX register would be corrupt when TIMACHINE wanted it the way it had left it. What was necessary was PUSH IX before going to LKDOS to print and POP IX before using it for TIMACHINE use. This was done by moving and eliminating instructions in the LIST portion of the TIMACHINE program. The printing of the simple variables was all right and nothing was needed here except dropping the “print at” in favor of “print a space” which netted three bytes to use for the “PUSHes” and “POPs” that had to be added. The array variables and strings also required PUSH IX and POP IX additions to get around the corrupt pointer for address locations. All the foregoing was done using debugger DB4ØXX.C2 program starting with disassembly of “TSTI2.C1, ” previous disassembly of LKDOS and ending with the moving and modifying the LIST portion of “TSTI2.C1. ” The modified program is called “COMPIL.C1” and the BASIC loader is “TSTME.B2.”