--- title: "ZXPaint3" type: "article" slug: "zxpaint3" url: "http://localhost/article/zxpaint3/" markdown_url: "http://localhost/article/zxpaint3.md" published_at: "2025-07-12T01:43:11+00:00" modified_at: "2025-07-12T01:43:11+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "I've been using the tool ZXPaintyOne to create ZX81 graphics. The tool creates a long string of numbers to represent the value of the characters painted on the screen. I wrote zxpaintl.c to take the output of ZXPaintyOne and create a screen file (.scr) that could be directly loaded into the ZX81. I wrote zxpaint2.c…" category: - name: "ZXzine" slug: "zxzine" taxonomy: "category" url: "http://localhost/category/periodicals/zxzine/" post_tag: - name: "TS 1000" slug: "ts1000" taxonomy: "post_tag" url: "http://localhost/tag/ts1000/" model: - name: "Timex/Sinclair 1000" slug: "ts-1000" taxonomy: "model" url: "http://localhost/model/ts-1000/" indiv: - name: "Tim Swenson" slug: "tim-swenson" taxonomy: "indiv" url: "http://localhost/indiv/tim-swenson/" publication_r: id: 38051 title: "ZXzine" type: "periodical" url: "http://localhost/periodical/zxzine/" authors_r: - name: "Tim Swenson" slug: "tim-swenson" taxonomy: "indiv" url: "http://localhost/indiv/tim-swenson/" issue: "12" issues_articles: - id: 60034 title: "ZXzine Issue 12" type: "issue" url: "http://localhost/issue/zxzine-issue-12/" pages: "6" pubdate: "July 2025" archive_link: false --- # ZXPaint3 I’ve been using the tool ZXPaintyOne to create ZX81 graphics. The tool creates a long string of numbers to represent the value of the characters painted on the screen. I wrote zxpaintl.c to take the output of ZXPaintyOne and create a screen file (.scr) that could be directly loaded into the ZX81. I wrote zxpaint2.c to take the output of ZXPaintyOne and save it in a form to be used by zxtext2p. It converts the hex numbers to the ASCII characters that zxtext2p uses for graphics characters.