https://github.com/davidlinsley/DragonBasic Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. {{ message }} davidlinsley / DragonBasic Public * Notifications * Fork 4 * Star 44 This repository contains the source code for the Dragon 64 versions of the Microsoft 16K BASIC Interpreter for the Motorola 6809 (aka BASIC-69 and Extended Color BASIC). License View license 44 stars 4 forks Star Notifications * Code * Issues 1 * Pull requests 0 * Discussions * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Projects * Security * Insights davidlinsley/DragonBasic This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 1 branch 0 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/d] Use Git or checkout with SVN using the web URL. [gh repo clone davidl] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @davidlinsley davidlinsley Update LICENSE.md ... c08111a Jun 26, 2023 Update LICENSE.md Add Eurohard release. c08111a Git stats * 39 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time docs Motorola assembler manual (#6) December 11, 2022 10:42 listing Fix last tne to the (checked scans) (#50) June 23, 2023 22:56 ocr ECBOEM.SA (#46) April 17, 2023 20:04 scans Rename the OriginalScans directory to scans (#49) June 23, 2023 22:35 src Fix last tne to the (checked scans) (#50) June 23, 2023 22:56 CONTRIBUTING.md Updated readme, license and added contributing guide (#51) June 24, 2023 21:01 LICENSE.md Update LICENSE.md June 26, 2023 08:46 README.md Updated readme, license and added contributing guide (#51) June 24, 2023 21:01 View code [ ] Microsoft BASIC for the Dragon 64 Repository Layout Source Fidelity Authors License Contributing Acknowledgements Duncan Smeed Richard Harding Tony Jewell Tim Gilberts Rich Turner Dave Plummer Al Kossow Cecelia, Chiara and Thea Linsley README.md Microsoft BASIC for the Dragon 64 This repository contains the source code for the Dragon 64 versions of the Microsoft 16K BASIC Interpreter for the Motorola 6809 (aka BASIC-69 and Extended Color BASIC). At the time of creating this repo it is the only known copy of the source code. The source was recovered from a paper listing of the Motorola assembler output that was produced in 1983 at Dragon Data's R&D facility near their Kenfig factory in Port Talbot, Wales. The shared and unique source for both the 32K and 64K mode ROMs are present, and despite being boxed in an attic for a majority of the previous 39 years, the listing is very well preserved. It totals 340 pages of fan-fold tractor feed across 4 bundles. Scanning was hand fed one page at a time (carefully not breaking any of the fan fold or tractor perforations) the weekend of October 22nd-23rd at the 2022 Dragon Meetup. This was also in Port Talbot to mark the 40th Anniversary celebration of the Dragon 32. Over the following months the scans were bulk OCR'ed and manually corrected. Only a handful of poor scans required consulting the original listing. Repository Layout * docs + The manual for the Motorola RASM09 assembler that was likely used given the listing format and that it is documented that Dragon Data owned several Motorola EXORciser systems. * listing + The individual source files broken out from the complete listing. + Each file is simply the corrected pages from the associated ocr sub-directory appended together. * ocr + The OCR of each scanned page split into per source file directories. + Each page is corrected in place to create reproductions (including alignment) of each page of the original listing. + Some later corrections were only made to the listing and src directory files as the contents of this folder were just an intermediate step. * scans + The scanned pages of the four listing bundles, split into per source file directories. * src + A copy of the files from the listing directory but renamed to the original filenames in the listing page titles. + The following items are removed: o PAGE heading lines o OPT settings for listing (printing) configuration # These possibly should be added back in, but they may have been included via ECBCOM.SA. o TOTAL-WARNINGS lines o TOTAL-ERRORS lines o Columns 1 through 27 inclusive which are the generated line/sequence numbers and assembled output. Source Fidelity The source is complete as output by the assembler barring unintentional errors from OCR and manual correction. Original spelling mistakes ("remeber") and other errors ("the the") are intentionally left as is. However, the source is not 100% complete as when shipped by Microsoft: * We do not yet know the composition of ECBCOM.SA + See issue ECBCOM.SA #15. + The contents of this file appear to have been the equivalent of #include into the other source files as ECBCOM.SA appears as the filename in the header line of every PAGE 001 of the other files. * There are missing macro definitions which the assembler did not list the bytes for, such as SKIP2. + These were likely defined in ECBCOM.SA. + Disassembling the ROMs we can recreate the macros but not any comments. * Empty IFNE / ENDC blocks that Dragon Data must not have defined the conditional for as the line numbers do show gaps. We can only speculate if these were for Microsoft or OEM development, alternate systems and optional features. They include: + CNTRLO + FRESW + GRPTEK + REALIO + SPCSW + TODCLK + WAITSW + &0 such as the "MONITOR COMMAND - SIMPLE M G R D" page title but no code inside the IFNE &0 block. Authors The following appear to be pure Microsoft files common across licensees: * ECBRAM.SA * ECBBAS.SA * ECBBS2.SA * ECBTAB.SA * ECBDNL.SA * ECBPU.SA * ECBMTH.SA * ECBEXT.SA * ECBGRP.SA These two files are variants for the 32K and 64K ROMs and contain Microsoft copyrights and the source for commands like CLS, AUDIO, SET and RESET. However, they also contain METTOY (the British toy company who originally formed Dragon Data) macro blocks for the boot screens followed immediately by empty GRPTEK blocks. It is unknown if they were customized by Microsoft for Dragon Data (and similarly for other licensees) or by Dragon Data, but the "mod" name may be a tell to the latter: * ECBMOD.SA (Dragon 64 32K ROM) * ECBM64.SA (Dragon 64 64K ROM) The last two files are the Dragon Data BIOS written by Duncan Smeed: * ECBOEM.SA (Dragon 64 32K ROM) * ECBO64.SA (Dragon 64 64K ROM) License The files in this repo are for historical archival/reference/interest purposes only. Please see the license for additional information. Contributing Contributions are welcome to further the fidelity of the listing and source code. Contribution guidance may be found in the Contributor's Guide stored in the root of this repo. Acknowledgements Duncan Smeed Duncan is the author of the Dragon Data BIOS and coauthor of the seminal book Inside the Dragon. In early 1982 he flew to Seattle from the UK for a single day roundtrip - to the bemusement of immigration at SeaTac Airport - to pick up the BASIC source code disk from Microsoft. Bookending that adventure, he hand delivered the listing to the Dragon Meetup where he helped scan a majority of pages. Richard Harding Tony Jewell Richard and Tony organized the 2022 Dragon Meetup and Richard's A3 scanner was kindly loaned for this project. Richard and I have been talking about this project since the 2019 Dragon Meetup. They continue to unearth Dragon history which they share on the Facebook Dragon 32/64 Owners/Users group, Twitter and Richard's Dragon Data Archive Tim Gilberts Tim helped scan a bulk of the listing, pairing with Duncan and myself. At the start of the Meetup he didn't know of this project, but happily sacrificed his time and was a great scanning partner. Rich Turner While at Microsoft Rich led the publishing of the GW-BASIC source code and provided the contacts and guidance for trying to publish the Microsoft code through the same route. He is also a former Dragon 32 owner from the original era. Dave Plummer Dave is a former Microsoft employee who used his network to secure permission from Microsoft for myself to publish the Microsoft source. Al Kossow Al gave permission to host a copy of the Motorola assembler manual which was sourced from his bitsavers.org site. Cecelia, Chiara and Thea Linsley This project would not have been possible without the support of my amazing family to fly 4800 miles to attend the 2022 Dragon Meetup. This also fulfilled a long held dream - since Christmas 1984 - of visiting the former Dragon Data factory. About This repository contains the source code for the Dragon 64 versions of the Microsoft 16K BASIC Interpreter for the Motorola 6809 (aka BASIC-69 and Extended Color BASIC). Topics microsoft basic 6809-assembly microsoft-basic motorola-6809 tandy-color-computer Resources Readme License View license Stars 44 stars Watchers 7 watching Forks 4 forks Report repository Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.