--- title: "ZMakeBAS" id: "61991" type: "page" slug: "zmakebas" published_at: "2026-01-01T22:03:47+00:00" modified_at: "2026-01-15T21:55:16+00:00" url: "http://localhost/zmakebas/" markdown_url: "http://localhost/zmakebas.md" excerpt: "zmakebas converts a Spectrum Basic program written as a text file into an actual speccy Basic file (as a .TAP file, or optionally a raw headerless file). By default, input comes from stdin, and output goes to ‘out.tap’. Using zmakebas..." --- [zmakebas](https://github.com/ohnosec/zmakebas) converts a Spectrum Basic program written as a text file into an actual speccy Basic file (as a .TAP file, or optionally a raw headerless file). By default, input comes from stdin, and output goes to ‘out.tap’. Using zmakebas rather than (say) writing the Basic in an emulator means you can write using a nicer editor, and can use tools which work on text files, etc. Also, with the ‘-l’ option you can write without line numbers, using labels in their place where necessary. [Learn more about zmakebas](https://github.com/ohnosec/zmakebas) ### Special Characters [Ryan Gray](/indiv/ryan-gray/) has made two excellent reference sheets to the [ZX81/TS1000](/document/zx-81-ts-1000-ts-1500-character-reference-sheet/) and [TS2068](/document/zx-spectrum-ts-2068-character-reference-sheet/) character sets. These sheets include the special character strings necessary to enter those characters when entering programs in a text editor and compiling them with Zmakebas. [ZX 81/TS 1000/TS 1500 Character Reference Sheet](/document/zx-81-ts-1000-ts-1500-character-reference-sheet/) [ZX Spectrum/TS 2068 Character Reference Sheet](document/zx-spectrum-ts-2068-character-reference-sheet/)