--- title: "Clip Art" id: 56289 type: "computer_media" slug: "clip-art" url: "http://localhost/computer_media/clip-art/" markdown_url: "http://localhost/computer_media/clip-art.md" published_at: "2024-08-04T10:49:46+00:00" modified_at: "2026-03-30T21:29:32+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2024/08/SCR-20240804-lcsm.png" excerpt: "A ten-image clip-art menu lets you PLOT, DRAW, and CIRCLE flowers, bees, valentines, and more — even layering multiple images on one screen." category: - name: "Archived Media" slug: "archived-media" taxonomy: "category" url: "http://localhost/category/archived-media/" 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: "Clip Art" slug: "clip-art" taxonomy: "genre" url: "http://localhost/type/clip-art/" media_contents: - id: 56277 title: "Timex Sinclair Public Domain Library Tape 2001" type: "computer_media" url: "http://localhost/computer_media/timex-sinclair-public-domain-library-tape-2001/" - id: 60550 title: "Fort Worth TS2068 Club Library Tape" type: "computer_media" url: "http://localhost/computer_media/fort-worth-ts2068-club-library-tape/" media_type: "Program" download_url: "https://archive.org/download/timex-sinclair-software-archive/Clip%20Art%20%28198x%29%28TS2068%29%28US%29%28Program%29.zip" mediadate: "198x" images: - url: "http://localhost/wp-content/uploads/2024/08/SCR-20240804-lcsm.png" - url: "http://localhost/wp-content/uploads/2024/08/SCR-20240804-lcvn.png" media_type_tags: "Clip Art" --- # Clip Art This program is a menu-driven clip-art viewer that lets the user select from ten pre-drawn graphics — including a box, flower, sun, cake, bee, church, Valentine heart, girl, star, and sunburst — and layer them on the screen by chaining selections before clearing. Each image is built entirely from PLOT, DRAW, and CIRCLE commands, with DRAW’s optional arc parameter (the third argument controlling arc angle, e.g. 0.6*PI) used extensively to render curved petals, wings, and heart lobes. The dispatch mechanism at line 50 uses the elegant expression GO TO 500*Number, routing directly to subroutine blocks spaced 500 lines apart. Block graphics characters embedded in PRINT AT statements supplement the vector drawing for details like eyes and wing markings, and selections loop back through line 50 so multiple images can be superimposed before a final input of 11 terminates via the STOP at line 5500. *** ## Program Analysis ### Program Structure The program is organized as a dispatcher with ten self-contained drawing blocks, each occupying a 500-line band. The main menu (lines 15–30) prints instructions describing all ten options, then line 30 accepts a number. Line 40 clears the screen and line 50 routes execution with the single expression `GO TO 500*Number`. Each drawing block ends with another `INPUT Number` and `GO TO 50`, allowing images to be layered before the user finally enters 11, which resolves to `GO TO 5500` where `STOP` ends the program. | Number | Line | Subject | | --- | --- | --- | | 1 | 500 | Note Box | | 2 | 1000 | Flower | | 3 | 1500 | Sun | | 4 | 2000 | Cake | | 5 | 2500 | Bee | | 6 | 3000 | Church | | 7 | 3500 | Valentine | | 8 | 4000 | Girl | | 9 | 4500 | Star | | 10 | 5000 | Sunburst | | 11 | 5500 | STOP | ### Dispatch Mechanism The key idiom is `GO TO 500*Number` at line 50. Because line numbers are evaluated as arithmetic expressions, multiplying the input by 500 cleanly maps integers 1–11 to the first line of each drawing block or the terminator. This is more compact and maintainable than a chain of `IF`/`GO TO` statements and is a well-regarded BASIC technique for structured dispatch. ### Drawing Techniques All graphics are produced using three commands: `PLOT`, `DRAW`, and `CIRCLE`. The two-argument form of `DRAW` draws straight line segments, while the three-argument form `DRAW dx,dy,angle` produces circular arcs. The arc parameter is consistently expressed as a fraction of `PI` (e.g. `0.6*PI`, `0.3*PI`, `0.5*PI`), giving precise control over curvature. - The **Flower** (line 1000) uses eight sets of paired arcs radiating from a central circle to simulate petals in four diagonal directions. - The **Valentine heart** (line 3500) constructs the two lobes with `DRAW -40,0,PI` — a semicircle — applied twice from adjacent start points, then closes the shape with two angled straight segments. - The **Bee** (line 2500) combines a body ellipse via arcs, a `CIRCLE` for the head, and a hand-drawn antenna/tail path. - The **Sunburst** (lines 5000–5110) fans out ~28 straight `DRAW` rays from a common origin at pixel (132,90), systematically incrementing both x and y offsets to cover the right and left hemispheres. ### Block Graphics Usage Several drawings supplement vector graphics with embedded block graphic characters placed via `PRINT AT row,col`. These characters are baked into string literals: - Sun (line 1530): `▖ ▖` — lower-left quarter-block characters suggest rays or texture. - Bee (line 2520): `▌ ▌` and `▖ ▖` for wing and body detail. - Girl (line 4030): `█ █` full blocks represent eyes. - Sunburst (line 5010): `______█______` marks the centre of the burst as a printed reference point. ### Layering Feature Because line 40 (`CLS`) is only reached when re-entering from the menu prompt at line 30, and each drawing block loops back via `GO TO 50` which jumps directly to `GO TO 500*Number` without clearing, images accumulate on screen. The user guide text at lines 27–29 explicitly instructs users to input 11 before copying or adding text, confirming that layering is an intentional design feature. ### Notable Anomalies - Line 1530 uses `PRINT AT 7,17;"▖ ▖"` to add detail to the Sun, but the Sun’s circle is drawn centred at pixel (145,110), which maps approximately to row 3, column 18 in text coordinates. The PRINT row 7 places the characters noticeably below the circle, suggesting a calibration issue between pixel and character-cell coordinates. - The **Star** (line 4510) begins with `PLOT 0,100` placing the first point at the far left edge of the screen, then `PLOT 70,100` immediately repositions without drawing — the initial `PLOT 0,100` serves no visible purpose and is likely a leftover from development. - Line 1010 uses `DRAW 14,0` and `DRAW -15,0,.6*PI` consecutively after `CIRCLE 127,90,10`; the straight draw moves the graphics cursor before the arc begins, which is an intentional but subtle technique to anchor the petal arc’s starting position relative to the circle. - The long `PRINT` string at line 20 relies on the system’s automatic word-wrap across the screen to display all ten menu options, trading readability in the listing for economy in line count. ## Source Code ``` 15 REM "cl art 1a" 16 PRINT AT 1,7;"Clip Art Program" 17 PRINT 18 PRINT AT 3,4;"(Allows Menu Selection)" 19 PRINT 20 PRINT "Input 1 for # 500 -Box, Input 2 for #1000 -Flower, Input 3 for #1500 -Sun, Input 4 for #2000 -Cake, Input 5 for #2500 -Bee, Input 6 for #3000 -Church, Input 7 for #3500 -Valentine, Input 8 for #4000 -Girl, Input 9 for #4500 -Star, Input 10 for #5000 -Sunburst, Input 11 if you are finished." 21 PRINT 27 PRINT "Input the next Clip Art number if you want to add it to the previous one." 29 PRINT "Note: Always input an 11 before copying or inputing text." 30 INPUT Number 40 CLS 50 GO TO 500*Number 500 REM "Note Box" 510 DRAW 0,160: DRAW 250,-0: DRAW 0,-160: DRAW -250,0: PLOT 24,16: DRAW 0,125: DRAW 200,-0: DRAW 0,-125: DRAW -200,0 520 INPUT Number 530 GO TO 50 1000 REM "A Flower" 1010 CIRCLE 127,90,10: DRAW 14,0: DRAW -15,0,.6*PI: DRAW 15,0,.6*PI 1020 PLOT 117,90: DRAW -14,0: DRAW 15,0,.6*PI: DRAW -15,0,.6*PI 1030 PLOT 127,100: DRAW 0,14: DRAW -0,-15,.6*PI: DRAW 0,15,.6*PI 1040 PLOT 127,80: DRAW 0,-14: DRAW -0,15,.6*PI: DRAW 0,-15,.6*PI 1050 PLOT 119,85: DRAW -9,-11: DRAW 11,11,.6*PI: DRAW -12,-12,.6*PI 1060 PLOT 118,97: DRAW -9,11: DRAW 11,-12,.6*PI: DRAW -11,12,.6*PI 1070 PLOT 136,95: DRAW 10,10: DRAW -11,-11,.6*PI: DRAW 11,11,.6*PI 1080 PLOT 135,81: DRAW 10,-10: DRAW -11,11,.6*PI: DRAW 11,-11,.6*PI 1090 PLOT 127,75: DRAW 0,-45: DRAW 6,22: DRAW 4,-16: DRAW -7,-5: DRAW -3,0: DRAW -8,25: DRAW -4,-8: DRAW 12,-18 1100 INPUT Number 1110 GO TO 50 1500 REM "The Sun" 1510 CIRCLE 145,110,20 1520 CIRCLE 145,111,20 1530 PRINT AT 7,17;"▖ ▖" 1540 PLOT 136,110 1550 DRAW 20,0,PI 1560 INPUT Number 1570 GO TO 50 2000 REM "B. Cake" 2010 CIRCLE 160,90,17 2020 PLOT 143,90: DRAW 0,-25: DRAW 34,0: DRAW 0,25: PLOT 135,80: DRAW 50,0,PI: PLOT 135,80: DRAW 2,6: DRAW 6,9: PLOT 185,80: DRAW -2,6: DRAW -6,9 2030 PLOT 165,90: DRAW 0,20: PLOT 165,115: DRAW 1,1: PLOT 155,95: DRAW 0,20: PLOT 155,120 2040 INPUT Number 2050 GO TO 50 2500 REM "A Bee" 2510 PLOT 125,90: DRAW -50,0,.6*PI: DRAW 50,0,.6*PI: CIRCLE 130,95,7: DRAW -5,20: DRAW 5,-20: DRAW 5,20 2520 PRINT AT 10,11;"▌ ▌": PRINT AT 11,11;"▌ ▌": PRINT AT 9,11;"▖ ▖" 2530 PLOT 120,95: DRAW -50,0,.3*PI: PLOT 110,100: DRAW -15,20: DRAW -10,3: DRAW -3,-3: DRAW 2,-10: DRAW 10,-6: DRAW 12,-3 2540 INPUT Number 2550 GO TO 50 3000 REM "Church" 3010 PLOT 125,110: DRAW 50,4: DRAW 30,-30: DRAW -60,0: DRAW -22,27: DRAW -22,-25: DRAW 4,4: DRAW 0,-50: DRAW 35,0: DRAW 0,48: DRAW 0,-48: DRAW 55,12: DRAW 0,32 3020 PLOT 125,111: DRAW 0,40: DRAW 5,-40: DRAW -10,0: DRAW 3,40: DRAW -3,-40: DRAW 0,-3 3030 PLOT 128,75: DRAW -13,0,PI: DRAW 0,-29: DRAW 13,0: DRAW 0,29 3040 INPUT Number 3050 GO TO 50 3500 REM "Valentine" 3510 PLOT 200,100 3530 DRAW -40,0,PI: PLOT 160,100: DRAW -40,0,PI 3540 PLOT 120,100: DRAW 40,-50,.3*PI: DRAW 40,50,.3*PI 3550 PRINT AT 8,6;"B E" 3560 PRINT AT 12,8;"M Y" 3570 PRINT AT 17,6;"V A L E N T I N E" 3580 INPUT Number 3590 GO TO 50 4000 REM Girl 4010 CIRCLE 125,90,20 4020 DRAW 20,0,PI: PLOT 85,90: DRAW 20,0,PI 4030 PRINT AT 10,14;"█ █" 4040 PLOT 120,81: DRAW 10,0,.5*PI 4050 INPUT Number 4060 GO TO 50 4500 REM Star 4510 PLOT 0,100: PLOT 70,100: DRAW 100,0: DRAW -70,-50: DRAW 10,100: DRAW 50,-100: DRAW -90,50 4520 INPUT Number 4530 GO TO 50 5000 REM Sunburst 5010 PRINT AT 10,10;"______█______" 5020 PLOT 132,90: DRAW 0,45: PLOT 132,90: DRAW 0,-45: PLOT 132,87: DRAW 10,44: PLOT 132,87: DRAW 10,-44: PLOT 132,87: DRAW 20,42 5030 PLOT 132,87: DRAW 20,-42: PLOT 132,87: DRAW 30,38: PLOT 132,87: DRAW 30,-38 5040 PLOT 132,87: DRAW 40,32: PLOT 132,87: DRAW 40,-32: PLOT 132,90: DRAW 50,20 5050 PLOT 132,89: DRAW 50,-23: PLOT 132,89: DRAW 50,12: PLOT 132,89: DRAW 50,-12 5060 PLOT 132,90: DRAW 10,-10 5070 REM Start on left side 5080 PLOT 132,90: DRAW -10,45: PLOT 132,90: DRAW -10,-45 5090 PLOT 132,90: DRAW -20,45: PLOT 132,90: DRAW -20,-45: PLOT 132,90: DRAW -30,42 5100 PLOT 132,90: DRAW -30,-42: PLOT 132,90: DRAW -40,36: PLOT 132,90: DRAW -40,-36: PLOT 132,90: DRAW -50,22 5110 PLOT 132,90: DRAW -50,-22: PLOT 132,90: DRAW -53,12: PLOT 132,90: DRAW -53,-12 5120 INPUT Number 5130 GO TO 50 5500 STOP ```