--- title: "Horace Goes Skiing" id: 72486 type: "computer_media" slug: "horace-goes-skiing" url: "http://localhost/computer_media/horace-goes-skiing/" markdown_url: "http://localhost/computer_media/horace-goes-skiing.md" published_at: "2026-10-24T00:59:43+00:00" modified_at: "2026-10-24T00:59:43+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/10/skiing-1.png" excerpt: "Guide Horace across a busy road to rent skis, then back across and down a slalom course between the flags while avoiding trees." post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "Melbourne House Publishers" slug: "melbourne-house-publishers" taxonomy: "post_tag" url: "http://localhost/tag/melbourne-house-publishers/" - name: "Timex Computer Corporation" slug: "timex-computer-corporation" taxonomy: "post_tag" url: "http://localhost/tag/timex-computer-corporation/" - 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: "William Tang" slug: "william-tang" taxonomy: "indiv" url: "http://localhost/indiv/william-tang/" genre: - name: "Game" slug: "game" taxonomy: "genre" url: "http://localhost/type/game/" media_type: "Program" programmers: - name: "William Tang" slug: "william-tang" taxonomy: "indiv" url: "http://localhost/indiv/william-tang/" download_url: "https://archive.org/download/timex-sinclair-software-archive/Horace%20Goes%20Skiing%20%281984%29%28Tang%2C%20William%29%28TS2068%29%28US%29%28Program%29.zip" tsrun_member: "Horace Goes Skiing (1984)(Tang, William)(TS2068)(US)(Program)/Horace Goes Skiing (1984)(Tang, William)(TS2068)(US)(Program).tap" mediadate: "1984" producer_company: - id: 11401 title: "Timex Computer Corporation" type: "company" url: "http://localhost/company/timex-computer-corporation/" - id: 11087 title: "Melbourne House Publishers" type: "company" url: "http://localhost/company/melbourne-house-publishers/" images: - url: "http://localhost/wp-content/uploads/2026/10/skiing-1.png" - url: "http://localhost/wp-content/uploads/2026/10/skiing-2.png" - url: "http://localhost/wp-content/uploads/2026/10/skiing-play.png" article_media: - id: 42465 title: "Horace … At Last!" type: "article" url: "http://localhost/article/horace-at-last/" - id: 10544 title: "TS2068 Review: The Horace Saga…" type: "article" url: "http://localhost/article/ts2068-review-the-horace-saga/" related_products: - id: 26085 title: "Horace Goes Skiing" type: "product" url: "http://localhost/product/horace-goes-skiing/" media_type_tags: "Game" license: false --- # Horace Goes Skiing Horace must first cross a busy multi-lane road of cars, trucks and bicycles to reach the SKIS hut, where he rents skis with his cash. He then crosses back and skis down a slalom course, passing between the flags and avoiding trees. A demo mode plays until a key is pressed. The title screen scrolls “COPYRIGHT © 1982 BEAM SOFTWARE — WRITTEN BY WILLIAM TANG”. The game was first published by Melbourne House, and Timex sold this TS2068 version (catalog 06-4015) in 1984, with Psion named on the product listing. Its companions, Hungry Horace and Horace and the Spiders, are also archived here. ## Program Analysis ### Loader The BASIC loader does `CLEAR 30000`, sets paper, ink and border to yellow, loads a title screen and a 9,216-byte code block at 32768, and starts it with `PRINT USR 32768`. Constants are written as `PI-PI` and `PI/PI`, and `POKE 23659,0` (DF SZ) comes before each step. ### Notable Techniques - The game is machine code. The BASIC uses `LET z=PI-PI` and `LET o=PI/PI` to save memory on numeric constants. - Setting DF SZ (23659) to 0 before each `PRINT AT 22,0` lets the loader use the bottom lines of the screen. This copy came from a Larken disk and was converted for tape: the `PRINT USR 100` disk prefixes and the LOGICALL line were removed. It was tested on a stock TS2068 in ZEsarUX: title screen, demo mode and play, with Horace moving and scoring. ## Source Code ``` 10 CLEAR 30000: LET z=PI-PI: LET y=6: LET o=PI/PI: LET l=22: LET m=23659 20 BORDER y: PAPER y: INK y: CLS 30 POKE m,z: PRINT AT l,z;;: PRINT USR 100: LOAD "skiing.C$"SCREEN$ 40 POKE m,z: PRINT AT l,z;;: PRINT USR 100: LOAD "skiing.C1"CODE 50 POKE m,z: PRINT AT l,z;;: PRINT USR 32768 9992 PRINT USR 100: SAVE "SKIING.B1" LINE 1 9998 PRINT USR 100: LOAD "L.B1" ```