retrotype


Nameretrotype JSON
Version 1.1.0 PyPI version JSON
download
home_page
SummaryDebuging and conversion tool for 1980s magazine type-in programs
upload_time2023-07-10 02:31:01
maintainer
docs_urlNone
author
requires_python>=3.8
licenseMIT License Copyright (c) 2021 Michael Buhidar Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords commodore64 vic20 commodore atari compute ahoy run magazine c64
VCS
bugtrack_url
requirements attrs black cfgv click coverage distlib filelock flake8 identify iniconfig mccabe mypy mypy-extensions nodeenv packaging pathspec platformdirs pluggy pre-commit py pycodestyle pyflakes pyparsing pytest PyYAML toml tomli typing_extensions virtualenv
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # retrotype

Tools for typing-in, debugging, and converting 1980s magazine type-in games and
programs for use with Commodore emulators and original hardware.

## Installation (requires Python 3.8 or later)

`pip3 install retrotype --upgrade`

## Tool: retrotype_cli

The `retrotype_cli` tool is a command line debugger and converter for Commodore
BASIC programs focused on tokenizing magazine type-in programs popular in the
1980s. Given an input text file containing BASIC source code in magazine
type-in format, it checks the typed line entries against line checksums that
were printed in the magazines to insure program is bug-free. It outputs both
the checksums to the terminal and writes a file with the extension '.chk' for
comparison with the checksums printed in the magazine or with a '.ref' file
containing the line numbers and checksums from the magazine. Finally, it
outputs an executable '.prg' file for direct use with an emulator or original
hardware.

### Usage

After installation, use `retrotype_cli` directly from the command line -
consult the help for the latest usage:

**Note:** Currently the only implemented options are for Ahoy C64 programs.

```
retrotype_cli [-l load_address] [-s source_format] [-w] input_file
```

```
positional arguments:
  input_file            Specify the input file name, including path.
                        Note:  Output files will use input file basename

optional arguments:
  -h, --help            show this help message and exit

  -l load_address, --loadaddr load_address
                        Specifies the target BASIC memory address when loading:
                        - 0x0801 - C64 (default)
                        - 0x1001 - VIC20 Unexpanded
                        - 0x0401 - VIC20 +3K
                        - 0x1201 - VIC20 +8K
                        - 0x1201 - VIC20 +16
                        - 0x1201 - VIC20 +24K

  -s source_format, --source source_format
                        Specifies the magazine source for conversion and checksum:
                        ahoy1 - Ahoy magazine (Apr-May 1984)
                        ahoy2 - Ahoy magazine (Jun 1984-Apr 1987) (default)
                        ahoy3 - Ahoy magazine (May 1987-)

  -w, --wip             Work in progress, do not output executable binary file.
```

As an example for an Ahoy! magazine file:

```
Input:  basename.bas

Outputs:  basename.prg (tokenized file that can be run on a Commodore computer
                        or on an emulator like VICE)
          basename.chk (list of line numbers and checksums, along with the
                        number of lines, for comparision to checksums printed
                        in the magazine)
```

### Notes for entering programs from Ahoy issues prior to November 1984:

In addition to the special character codes contained in braces
in the magazine, Ahoy also used a shorthand convention for
specifying a key entry preceeded by either the Shift key or the
Commodore key as follows:

    Underlined characters - preceed entry with Shift key
    Overlined characters - preceed entry with Commodore key

Standard keyboard letters should be typed as follows for these two cases.

    {s A}, {s B}, {s *} etc.
    {c A}, {c B}, {c *}, etc.

There are a few instances where the old hardware has keys not
available on a modern keyboard or are otherwise ambiguous.
Those should be entered as follows:

    {EP} - British Pound symbol
    {UP_ARROW} - up arrow symbol
    {LEFT_ARROW} - left arrow symbol
    {PI} - Pi symbol
    {s RETURN} - shifted return
    {s SPACE} - shifted space
    {c EP} - Commodore-Bristish Pound symbol
    {s UP_ARROW} - shifted up arrow symbol

After the October 1984 issue, the over/under score representation was
discontinued as was the use of braces as delineators. After October 1984, the
braces were replaced by brackets, however, either can be used while typing in
the programs for any issue. The special characters can be typed as listed
in the magazines after that issue.

### Using the output files

You can run the .prg file generated by the `retrotype_cli` program by
running it with the VICE emulator with the following command (must have VICE
installed):

```
x64sc -basicload program_name.prg &
```

Of course, you can also run the .prg file on original hardware.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "retrotype",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "commodore64,vic20,commodore,atari,compute,ahoy,run,magazine,c64",
    "author": "",
    "author_email": "Michael Buhidar <mbuhidar@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/4d/7c/91482a66ee1b169280c5e1abaf4e5adb8f5a56ca8d156b7689b142b8265c/retrotype-1.1.0.tar.gz",
    "platform": null,
    "description": "# retrotype\n\nTools for typing-in, debugging, and converting 1980s magazine type-in games and\nprograms for use with Commodore emulators and original hardware.\n\n## Installation (requires Python 3.8 or later)\n\n`pip3 install retrotype --upgrade`\n\n## Tool: retrotype_cli\n\nThe `retrotype_cli` tool is a command line debugger and converter for Commodore\nBASIC programs focused on tokenizing magazine type-in programs popular in the\n1980s. Given an input text file containing BASIC source code in magazine\ntype-in format, it checks the typed line entries against line checksums that\nwere printed in the magazines to insure program is bug-free. It outputs both\nthe checksums to the terminal and writes a file with the extension '.chk' for\ncomparison with the checksums printed in the magazine or with a '.ref' file\ncontaining the line numbers and checksums from the magazine. Finally, it\noutputs an executable '.prg' file for direct use with an emulator or original\nhardware.\n\n### Usage\n\nAfter installation, use `retrotype_cli` directly from the command line -\nconsult the help for the latest usage:\n\n**Note:** Currently the only implemented options are for Ahoy C64 programs.\n\n```\nretrotype_cli [-l load_address] [-s source_format] [-w] input_file\n```\n\n```\npositional arguments:\n  input_file            Specify the input file name, including path.\n                        Note:  Output files will use input file basename\n\noptional arguments:\n  -h, --help            show this help message and exit\n\n  -l load_address, --loadaddr load_address\n                        Specifies the target BASIC memory address when loading:\n                        - 0x0801 - C64 (default)\n                        - 0x1001 - VIC20 Unexpanded\n                        - 0x0401 - VIC20 +3K\n                        - 0x1201 - VIC20 +8K\n                        - 0x1201 - VIC20 +16\n                        - 0x1201 - VIC20 +24K\n\n  -s source_format, --source source_format\n                        Specifies the magazine source for conversion and checksum:\n                        ahoy1 - Ahoy magazine (Apr-May 1984)\n                        ahoy2 - Ahoy magazine (Jun 1984-Apr 1987) (default)\n                        ahoy3 - Ahoy magazine (May 1987-)\n\n  -w, --wip             Work in progress, do not output executable binary file.\n```\n\nAs an example for an Ahoy! magazine file:\n\n```\nInput:  basename.bas\n\nOutputs:  basename.prg (tokenized file that can be run on a Commodore computer\n                        or on an emulator like VICE)\n          basename.chk (list of line numbers and checksums, along with the\n                        number of lines, for comparision to checksums printed\n                        in the magazine)\n```\n\n### Notes for entering programs from Ahoy issues prior to November 1984:\n\nIn addition to the special character codes contained in braces\nin the magazine, Ahoy also used a shorthand convention for\nspecifying a key entry preceeded by either the Shift key or the\nCommodore key as follows:\n\n    Underlined characters - preceed entry with Shift key\n    Overlined characters - preceed entry with Commodore key\n\nStandard keyboard letters should be typed as follows for these two cases.\n\n    {s A}, {s B}, {s *} etc.\n    {c A}, {c B}, {c *}, etc.\n\nThere are a few instances where the old hardware has keys not\navailable on a modern keyboard or are otherwise ambiguous.\nThose should be entered as follows:\n\n    {EP} - British Pound symbol\n    {UP_ARROW} - up arrow symbol\n    {LEFT_ARROW} - left arrow symbol\n    {PI} - Pi symbol\n    {s RETURN} - shifted return\n    {s SPACE} - shifted space\n    {c EP} - Commodore-Bristish Pound symbol\n    {s UP_ARROW} - shifted up arrow symbol\n\nAfter the October 1984 issue, the over/under score representation was\ndiscontinued as was the use of braces as delineators. After October 1984, the\nbraces were replaced by brackets, however, either can be used while typing in\nthe programs for any issue. The special characters can be typed as listed\nin the magazines after that issue.\n\n### Using the output files\n\nYou can run the .prg file generated by the `retrotype_cli` program by\nrunning it with the VICE emulator with the following command (must have VICE\ninstalled):\n\n```\nx64sc -basicload program_name.prg &\n```\n\nOf course, you can also run the .prg file on original hardware.\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2021 Michael Buhidar  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Debuging and conversion tool for 1980s magazine type-in programs",
    "version": "1.1.0",
    "project_urls": {
        "Homepage": "https://github.com/mbuhidar/retrotype"
    },
    "split_keywords": [
        "commodore64",
        "vic20",
        "commodore",
        "atari",
        "compute",
        "ahoy",
        "run",
        "magazine",
        "c64"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ffd2f82d7f5c41f48c7a54763bf517312e87b26455a7e6e954826c1bbdf3d1e6",
                "md5": "36c14cc10ffb1d516aa1f0a0b7f432f0",
                "sha256": "54ef4ceeb324a6c2c8c1df11fd30177edee03dc1d20dfc67a64048c706110283"
            },
            "downloads": -1,
            "filename": "retrotype-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "36c14cc10ffb1d516aa1f0a0b7f432f0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 14706,
            "upload_time": "2023-07-10T02:30:59",
            "upload_time_iso_8601": "2023-07-10T02:30:59.998784Z",
            "url": "https://files.pythonhosted.org/packages/ff/d2/f82d7f5c41f48c7a54763bf517312e87b26455a7e6e954826c1bbdf3d1e6/retrotype-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4d7c91482a66ee1b169280c5e1abaf4e5adb8f5a56ca8d156b7689b142b8265c",
                "md5": "8600fe9539d880a211e9f73ce41eb4dc",
                "sha256": "1d5cfde3293683968c2833a753bfdefcbd917d0ac6c3a433c7fc3a1826935733"
            },
            "downloads": -1,
            "filename": "retrotype-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "8600fe9539d880a211e9f73ce41eb4dc",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 15050,
            "upload_time": "2023-07-10T02:31:01",
            "upload_time_iso_8601": "2023-07-10T02:31:01.647613Z",
            "url": "https://files.pythonhosted.org/packages/4d/7c/91482a66ee1b169280c5e1abaf4e5adb8f5a56ca8d156b7689b142b8265c/retrotype-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-10 02:31:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mbuhidar",
    "github_project": "retrotype",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "attrs",
            "specs": [
                [
                    "==",
                    "21.4.0"
                ]
            ]
        },
        {
            "name": "black",
            "specs": [
                [
                    "==",
                    "22.10.0"
                ]
            ]
        },
        {
            "name": "cfgv",
            "specs": [
                [
                    "==",
                    "3.3.1"
                ]
            ]
        },
        {
            "name": "click",
            "specs": [
                [
                    "==",
                    "8.1.3"
                ]
            ]
        },
        {
            "name": "coverage",
            "specs": [
                [
                    "==",
                    "6.5.0"
                ]
            ]
        },
        {
            "name": "distlib",
            "specs": [
                [
                    "==",
                    "0.3.6"
                ]
            ]
        },
        {
            "name": "filelock",
            "specs": [
                [
                    "==",
                    "3.8.0"
                ]
            ]
        },
        {
            "name": "flake8",
            "specs": [
                [
                    "==",
                    "4.0.1"
                ]
            ]
        },
        {
            "name": "identify",
            "specs": [
                [
                    "==",
                    "2.5.9"
                ]
            ]
        },
        {
            "name": "iniconfig",
            "specs": [
                [
                    "==",
                    "1.1.1"
                ]
            ]
        },
        {
            "name": "mccabe",
            "specs": [
                [
                    "==",
                    "0.6.1"
                ]
            ]
        },
        {
            "name": "mypy",
            "specs": [
                [
                    "==",
                    "0.991"
                ]
            ]
        },
        {
            "name": "mypy-extensions",
            "specs": [
                [
                    "==",
                    "0.4.3"
                ]
            ]
        },
        {
            "name": "nodeenv",
            "specs": [
                [
                    "==",
                    "1.7.0"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": [
                [
                    "==",
                    "21.3"
                ]
            ]
        },
        {
            "name": "pathspec",
            "specs": [
                [
                    "==",
                    "0.10.2"
                ]
            ]
        },
        {
            "name": "platformdirs",
            "specs": [
                [
                    "==",
                    "2.5.4"
                ]
            ]
        },
        {
            "name": "pluggy",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "pre-commit",
            "specs": [
                [
                    "==",
                    "2.20.0"
                ]
            ]
        },
        {
            "name": "py",
            "specs": [
                [
                    "==",
                    "1.11.0"
                ]
            ]
        },
        {
            "name": "pycodestyle",
            "specs": [
                [
                    "==",
                    "2.8.0"
                ]
            ]
        },
        {
            "name": "pyflakes",
            "specs": [
                [
                    "==",
                    "2.4.0"
                ]
            ]
        },
        {
            "name": "pyparsing",
            "specs": [
                [
                    "==",
                    "3.0.9"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    "==",
                    "7.1.2"
                ]
            ]
        },
        {
            "name": "PyYAML",
            "specs": [
                [
                    "==",
                    "6.0"
                ]
            ]
        },
        {
            "name": "toml",
            "specs": [
                [
                    "==",
                    "0.10.2"
                ]
            ]
        },
        {
            "name": "tomli",
            "specs": [
                [
                    "==",
                    "2.0.1"
                ]
            ]
        },
        {
            "name": "typing_extensions",
            "specs": [
                [
                    "==",
                    "4.4.0"
                ]
            ]
        },
        {
            "name": "virtualenv",
            "specs": [
                [
                    "==",
                    "20.17.0"
                ]
            ]
        }
    ],
    "lcname": "retrotype"
}
        
Elapsed time: 0.09226s