{"id":17919071,"url":"https://github.com/norton120/educator-tools-87","last_synced_at":"2026-01-17T18:38:50.959Z","repository":{"id":240816969,"uuid":"803536044","full_name":"norton120/educator-tools-87","owner":"norton120","description":"A suite of BASICA educator tools originally authored over 40 years ago","archived":false,"fork":false,"pushed_at":"2024-05-21T17:41:12.000Z","size":323,"stargazers_count":40,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-03T08:23:37.581Z","etag":null,"topics":["1980s","1990s","basic","basica","dos","education","educational","retrocomputing","teaching","teaching-assistant","teaching-materials","teaching-resources","teaching-tool","teaching-tools"],"latest_commit_sha":null,"homepage":"","language":"BASIC","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/norton120.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-20T23:06:47.000Z","updated_at":"2025-01-15T19:50:26.000Z","dependencies_parsed_at":"2024-05-21T01:14:19.393Z","dependency_job_id":"ec98e2de-c93d-4add-bdc1-e77b92f0dd8a","html_url":"https://github.com/norton120/educator-tools-87","commit_stats":null,"previous_names":["norton120/educator-tools-87"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/norton120/educator-tools-87","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norton120%2Feducator-tools-87","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norton120%2Feducator-tools-87/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norton120%2Feducator-tools-87/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norton120%2Feducator-tools-87/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/norton120","download_url":"https://codeload.github.com/norton120/educator-tools-87/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norton120%2Feducator-tools-87/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28516197,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:28:00.501Z","status":"ssl_error","status_checked_at":"2026-01-17T18:28:00.150Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["1980s","1990s","basic","basica","dos","education","educational","retrocomputing","teaching","teaching-assistant","teaching-materials","teaching-resources","teaching-tool","teaching-tools"],"created_at":"2024-10-28T20:14:08.255Z","updated_at":"2026-01-17T18:38:50.941Z","avatar_url":"https://github.com/norton120.png","language":"BASIC","funding_links":[],"categories":["BASIC"],"sub_categories":[],"readme":"## Educator Tool Suite '87\n\nThis is a collection of `BASCIA` utility programs for classroom management written by my father, Mike Knox, in the late 1980s. These programs were designed to automate and streamline the clerical work that goes along with teaching 8th grade science - grading tests, assigning seats for classroom and lab, monitoring attendance, grading tests and state Regents exams, and more.\n\nThe program suite includes utilites for grading tests, generating random student seat assignments, handling attendance and grading on a curve. We have all kinds of tools to do these things today - even a simple spreadsheet will get you pretty far. But 40 years ago this was done, without exception, by hand. **Bonus**: there's a nifty routine for creating labels for your cassette tapes 📼\n\nBecause BASICA stored source code in tokenized binary form it is unlikely any of your editors will even be able to open the `.BAS` programming files in the `Program` directory; so I took the liberty of converting all the executables to [modern UTF-8](utf8_code) so you can read them!\n\nIf you are a `BASIC` enthusiast or have an interest in period programming, or if you are an educator in the field, this repo is worth a fork and some messing around.\nThis is a great example of the best kind of software (at least in my opinion); code that automates away boring, monotonous stuff, so your focus can be on the work you _want_ to do. In this case, less paperwork and more teaching 🎓 📖 🧠 🧪!\n\n_They came from an IBM formatted 3.5\" floppy disk, wich was the backup (labeled as such) - So the July 23, 1987 timestamp on `BASICA.EXE` was likely the backup date, not the modified timestamp for the working files._\n\n\u003cp float=\"left\"\u003e\n\u003cimg alt=\"Seating Chart Manager\" src=\"screenshots/seat_chart.png\" style=\"width:40%; display: inline; margin:1px;\" /\u003e\n\u003cimg alt=\"Seating Chart Manager (detail)\" src=\"screenshots/seat_chart_detail.png\" style=\"width:40%; display:inline; margin:1px;\" /\u003e\n\u003cimg alt=\"Test Scoring Helper\" src=\"screenshots/test_scorer.png\" style=\"width:40%; display: inline; margin:1px;\" /\u003e\n\u003cimg alt=\"Cassette Tape Maker\" src=\"screenshots/tape_maker.png\" style=\"width:40%; display:inline; margin:1px;\" /\u003e\n\u003c/p\u003e\n\n## Run in Docker\nSince most of us do not have access to a working 8086 with DOS, the included emulation will come in handy. You can start the emulator with\n\n```bash\n    docker build . -t educator-87 \u0026\u0026 \\\n    docker run -it --rm educator-87\n```\n\nOnce the emulator has started, pick a utility program you'd like to try (with the `.BAS` filetype) and follow [these directions](https://github.com/robhagemans/pcbasic?tab=readme-ov-file#basic-survival-kit). For example, if **I wanted to try out the Cassette Tape Maker (`TAPEMAKE.BAS`):**\n\n```bash\n#PC-BASIC 2.0.7\n#(C) Copyright 2013-2023 Rob Hagemans.\n#60300 Bytes free\n#Ok\nLOAD \"TAPEMAKE\"\n#Ok\nRUN\n```\n\n### Up Next\n1. ~Encode the current `.bas` files from CP437 to UTF-8 so they can be easily read and modified~ ✔️\n2. ~Get these utilities running in a container~ ✔️\n3. Write some basic tests (pun intended) and have them running in Github CI for all the world to see\n    - it would be great to publish the test outputs along the way (note: `TEST2` may be what we need?)\n4. Write up docs and instructions for the different executables\n\n**_Note_**: The fault errors you will run into periodically are because the emulator is looking for a floppy disk drive that does not exist (to save or retrieve state). To get these fully operational will most likely require tricking the emulator into mounting a local path as the F drive.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorton120%2Feducator-tools-87","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnorton120%2Feducator-tools-87","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorton120%2Feducator-tools-87/lists"}