{"id":13402612,"url":"https://github.com/inexorabletash/jsbasic","last_synced_at":"2025-04-09T15:06:49.812Z","repository":{"id":8343947,"uuid":"9902668","full_name":"inexorabletash/jsbasic","owner":"inexorabletash","description":"Applesoft BASIC in JavaScript","archived":false,"fork":false,"pushed_at":"2024-10-15T06:36:44.000Z","size":851,"stargazers_count":194,"open_issues_count":11,"forks_count":40,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-04-09T15:06:45.717Z","etag":null,"topics":["basic","programming-language"],"latest_commit_sha":null,"homepage":"https://calormen.com/jsbasic","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inexorabletash.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2013-05-07T02:57:23.000Z","updated_at":"2025-03-17T15:37:31.000Z","dependencies_parsed_at":"2024-02-19T19:46:41.610Z","dependency_job_id":"ba679ee1-efa7-4d68-8bc3-6bdc19eaacd6","html_url":"https://github.com/inexorabletash/jsbasic","commit_stats":{"total_commits":183,"total_committers":6,"mean_commits":30.5,"dds":"0.032786885245901676","last_synced_commit":"aee6b4665f657aa1f2c37e1a1bba42fa77d4bf13"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inexorabletash%2Fjsbasic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inexorabletash%2Fjsbasic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inexorabletash%2Fjsbasic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inexorabletash%2Fjsbasic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inexorabletash","download_url":"https://codeload.github.com/inexorabletash/jsbasic/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248055284,"owners_count":21040157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["basic","programming-language"],"created_at":"2024-07-30T19:01:18.342Z","updated_at":"2025-04-09T15:06:49.791Z","avatar_url":"https://github.com/inexorabletash.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"jsbasic - Applesoft BASIC in JavaScript\n=======================================\n\nThis is hosted for playing with at https://inexorabletash.github.io/jsbasic/\n\nNotes \u0026 Known Issues\n--------------------\n* The BASIC program is compiled to JavaScript before execution. Syntax errors are therefore detected at compile-time rather than at run-time as on a traditional interpreter. For example, the following program would run without errors on an Apple since the erroneous second statement is never reached. `10 END : CHR$(PRINT)`\n* Handling of BASIC code that does not match the canonical `LIST` output format may not behave as on an Apple:\n  * Keyword parsing differs from Applesoft command line. For example `FOR I = S TO P` doesn't collapse into `FOR I = STOP`.\n* Limitations:\n  * Floating point overflow is only detected on variable assignment.\n  * Only a subset of DOS 3.3 and ProDOS useful for basic file I/O are implemented.\n  * Only a small number of common `PEEK`, `POKE` and `CALL` locations are supported.\n  * Commands that refer to assembly routines (`\u0026`, `USR()` etc.), shape tables, and tape I/O are not implemented.\n* Commands that operate on the program itself (`LIST`, `RUN`, `DEL`, etc.) are not implemented.\n* A handful of extensions are made beyond Applesoft BASIC:\n  * To improve readability, lines may start with `:` and continue the previously numbered line.\n  * `DEF FN` can define string functions\n  * `==` can be used as `=`\n  * `CHR$()` values \u003e 255 do interesting things\n  * `HSCRN(x, y)` allows probing the hi-res screen\n  * hexadecimal literals e.g. `$C010` can be used as numbers\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finexorabletash%2Fjsbasic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finexorabletash%2Fjsbasic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finexorabletash%2Fjsbasic/lists"}