126 comments

  • EvanAnderson 4 hours ago

    There's the "WAIT 6502,X" Easter egg[0]!

    Lines 6530 - 6539 are the "MICROSOFT!" that gets printed.

    Line 4914 is the code to check the address passed to WAIT and, if correct, print the "MICROSOFT!".

    It really is inconspicuous. A source licensee definitely wouldn't find it by quickly perusing.

    [0] https://www.pagetable.com/?p=43

    • exitb 4 hours ago

         "".join(map(lambda n: chr((n & 0o77) + 64), reversed([0o241, 0o124, 0o106, 0o217, 0o23, 0o217, 0o122, 0o103, 0o211, 0o315])))
      
      This python one-liner roughly recovers the hidden string out of defined bytes.
  • pico303 5 hours ago

    I love how the initial commit is "48 years ago."

    • JdeBP 4 hours ago

      If you enjoyed the datestamps on that repository, you will definitely enjoy the datestamps on this one:

      * https://github.com/dspinellis/unix-history-repo

      You'll also enjoy the contributors list.

      • user3939382 3 hours ago

        I recently diffed Unix 10 and NetBSD to see if or how many common actual byte-for-byte original code I could find. I found some.

      • bee_rider 4 hours ago

        Man, imagine a 2.5k line kernel. You could probably fully understand how part of the computer works.

    • msgilligan 4 hours ago

      Although that date should really only apply to the `m6502.asm` file. I think for a historical archive accuracy should be important. For example when was it licensed under the MIT license, I assume fairly recently. The file date should reflect that.

    • mandeepj 20 minutes ago

      because MS owns GitHub, so they manipulated the Db/Storage to change the commit date after the fact?

    • achrono 5 hours ago

      I love even more how it's a .md file from well before Markdown even existed.

      • perching_aix 5 hours ago

        I bet it being a Git repo must straight up feel otherwordly then.

        It's just a nice touch.

        • prerok 4 hours ago

          No, skynet went to the past and gave git and md to microsoft, which then proceeded to create the doc format from the md as a starting point :P

      • nodesocket 2 hours ago

        Way before git was even released in 2005.

    • ezoe 2 hours ago

      I wish they set the author to the appropriate person. I assume Bill Gates.

    • xattt 5 hours ago

      Are GitHub commit timestamps stored as Unix epoch time? If so, could we get similar timestamp accuracy when working with historical source code from systems like UNIVAC?

      • prerok 4 hours ago

        Yes, somebody could doctor those commits with the right timestamp so that we would get a clear historical progression.

        It's doable, but would have to doctored, there was no git then, obviously.

      • badc0ffee 4 hours ago

        Even if it was a 32-bit timestamp, you could still express dates back to December 13, 1901.

    • commandlinefan 4 hours ago

      I noticed that right away, too - I didn't know you could force backdates of git history like that.

      • mananaysiempre 4 hours ago

        The GIT_AUTHOR_DATE and GIT_COMMITTER_DATE environment variables[1] are what you use for things like that. (The former can also be overridden by the --date= option to git commit, and there’s also various situational stuff like --reset-author for git commit or --reset-author-date and --committer-date-is-author-date for git rebase. No, that last one is not parody.)

        [1] https://git-scm.com/docs/git-commit#_commit_information

      • Tor3 4 hours ago

        I have source I wrote using SCCS as version control, which later was moved to CVS, preserving the commits as well as commit dates, and at some point moved to Git, again preserving commits and dates. So some of my personal Git repositories have commit entries going back to the late eighties.

        For any ordinary commit you can simply include "--date=" with the 'git commit' command, e.g. -m "This is an old change" --date="2001-03-02 18:05:47"

      • meesles 4 hours ago

        All git data can be modified

    • shanselman 4 hours ago

      Thanks!

  • jelder 4 hours ago

    I really appreciate that they bothered to set an artificial timestamp for these git commits, roughly 30 years before Git itself existed. The thing is, the other files do, too, and the .gitignore is full of hilariously anachronistic references.

  • giancarlostoro 4 hours ago

    I'm trying for Visual Basic 6 to show up on GitHub someday.

    • networked 3 hours ago

      VB6 is as stretch, but I'd love to see Microsoft Visual Basic 1.0 for MS-DOS open-sourced. It is the only DOS version of Visual Basic. What is remarkable about VB for DOS is that it's a complete text-mode RAD IDE [1] for TUIs. There is no TUI builder that I know of like it. It is obscure and barely discussed by retrocomputing enthusiasts. Your best resource outside of early-1990s books and magazines is a 2020 blog post [2] that demonstrates building a "Hello, world!" project with screenshots.

      [1] https://en.wikipedia.org/wiki/Graphical_user_interface_build...

      [2] https://www.cloudwisp.com/exploring-visual-basic-1-0-for-ms-...

      • asdefghyk 2 hours ago

        Microsoft Visual Basic 1.0 for MSDOS -

        Sounds like competitor For Vermont Views or the previous product Windows for Data and windows for C

        No sure of the names ... my recollection this software was in use in early 90s and maybe late 80s

        • asdefghyk 2 hours ago

          Google of 3 words Vermont Views, software still picks up several links

          Borland Turbo Pascal and Borland Delphi where also (similar) products from around that time. These products where popular at the time. ( The development system provide include some kind of windows system for the application )

          Microsoft even hired key Delphi person ....

    • hu3 4 hours ago

      Same. This got me smiling, from some days ago:

      Visual Basic 6 rebuilt in C# – complete with form designer and IDE in browser

      https://news.ycombinator.com/item?id=42105869

  • thought_alarm 3 hours ago

    I'm very surprised it's organized as just a single 162 kB source document instead of being divided into smaller modules to make the code easier to work with, speed up build times, etc.

    Were PDP-10 text editors of the day able to easily work with such large documents? And how long would it typically take to assemble all of that code in one go?

  • codingwagie 4 hours ago

    Love the comments:

    "7/27/78 FIXED BUG WHERE FOR VARIABLE AT BYTE FF MATCHED RETURN SEARCHING FOR GOSUB ENTRY ON STACK IN FNDFOR CALL BY CHANGING STA FORPNT TO STA FORPNT+1. THIS IS A SERIOUS BUG IN ALL VERSIONS."

    Not far off from a comment I might make these days

    https://github.com/microsoft/BASIC-M6502/blob/main/m6502.asm...

  • glimshe 3 hours ago

    This is great. I've been around since the BASIC days and I always found awesome that most older personal computers had a programming language available within seconds of turning the computer on!

    I did a lot of hobby programming in BASIC. But I wonder how many commercial applications were written with it. Did small or big businesses write their own BASIC programs for internal needs?

    • turbo_wombat 3 hours ago

      The original version of Ultima I was written in a mixture of BASIC and assembly. BASIC is pretty slow, but most BASIC implementations let you call into optimized assembly routines.

      Though, past a certain point of complexity, performance aside, assembly might be more readable than BASIC because BASIC relied on line numbers for jumping around, whereas assemblers offered named labels.

      • CamperBob2 a minute ago

        The original version of Ultima I was written in a mixture of BASIC and assembly.

        True that. Who could forget "One moment for house-cleaning!"

        (... uh, everybody?)

  • jeffwass 3 hours ago

    This is cool, my Dad has an old OSI (Ohio Scientific) computer circa 1978 that likely used this or similar version of BASIC. He fired it up a couple of years ago and it booted to the welcoming Micro-Soft message (I think it had a hyphen like that).

  • smokel 3 hours ago

    I'm really hoping that this will perhaps lead to other BASIC implementations being open sourced as well.

    I've written a fully functional emulator for my first love, the Philips P2000T [1], but never released it because I couldn't find a legal way to distribute it. Most software for this machine requires the BASIC ROM, and even reverse engineering it might not be entirely legal.

    If anyone knows where to address my requests to Microsoft, I'd be very happy to hear that.

    [1] https://en.wikipedia.org/wiki/Philips_P2000

    • asdefghyk 2 hours ago

      Maybe a Microsoft employee could give some hints?

      Anyway, Id start with the Microsoft CEO. Id even email Bill Gates - he would have to"have some sway" if you could get his support - maybe internally ...?

      May be the old authors of the software could request it be released. Is it know who the authors of the ROM was? OR Even other hardware designers / workers who worked on original system - would bring interest to Microsoft and have to have some kind of positive momentum to such a request.

      Is it possible to work out the reasons how other old Microsoft software was released ? I imagine there would be reluctance to release anything that they thought had commercial value?

      As several products have been released over the years - there must be some offical or unoffical process

      Legal would have to have input

      I imagine there would be some close examination of software to verify , no negatives against Microsoft would / could he harboured in code OR found.

      So it would take some resources - maybe several days as a guess - but I really have no idea ... For example probably would want to verify it can be rebuilt - maybe?? would need to setup old toolchains , old hardware etc

      Also Some of these software may have been lost - could be embarrassing for Microsoft to admit this.

      {Aside - I used to work as a software configuration manager for a larger company - whose job it was to ensure all project code was collect, ensure we capture all the artifacts ( source and deliverables etc ) so it could be reliably independently rebuilt. This included all needed tools etc etc]

      • smokel 2 hours ago

        Thanks for the suggestions. I tried my very best a few years ago, and the release of 6502 BASIC has lifted my spirits a bit, so I'll try again and see where it gets me :)

        Unfortunately, the outlook for most Philips P2000T software is rather bleak, at least from a legal standpoint. The machine enjoyed only limited popularity, and commercial developers showed little interest in supporting it. As a result, much of the available software, particularly games, was written by hobbyists, and sharing through copied tapes was common practice.

        In the Netherlands, where the P2000T had its strongest following, copying software was legally permitted until 1990. After that, it became prohibited. Complicating matters further, many original developers released their programs under pseudonyms and provided no contact details. One can obtain quite a lot of this software by buying second-hand machines and tapes. However, redistribution is not legally allowed. As the magnetic tapes gradually degrade, many titles risk being lost forever.

    • tom_ 2 hours ago

      Regarding other BASIC versions: it's probably-abandonware rather than open source, but the (more than slightly inscrutable) source code for Acorn's 8-bit BBC BASIC is here: https://github.com/stardot/AcornDmosBasic (there are commented disassemblies available - you would probably find those more illuminating...)

      (BBC BASIC is pretty horrid by modern standards, but you'll probably still like it more than Microsoft BASIC. Has arbitary length variable names, multi-dimensional arrays, integer variables, PROCs, FNs, and an inline assembler.)

    • astolarz 2 hours ago

      I feel like Raymond Chen [0] might be a good place to start.

      [0] https://devblogs.microsoft.com/oldnewthing/author/oldnewthin...

    • shanselman 3 hours ago

      which basic rom is needed?

      • smokel 2 hours ago

        It's the P2305 cartridge, originally sold as "Module microsoft basic interpreter" [1], [2]. It's jointly copyrighted by Microsoft and Philips.

        I have discussed this with Philips [3] a few years ago, and they were open to sharing it, but I could not find a contact at Microsoft.

        [1] https://archive.org/details/20230420_20230420_1351

        [2] https://www.retrocomputing.nl/p2000-basic-cartridge/

        [3] https://github.com/philips-software

        Edit: for reference, the startup screen shows

          PHILIPS CASSETTE BASIC
          Versie 1.1 NL
        
          14966 bytes vrij
        • jdswain 43 minutes ago

          It's likely that is is mostly just the standard Microsoft Basic with some modified I/O routines. Since Microsoft Basic is now under the MIT license you are free to modify the code, it may be relatively easy to re-implement the I/O routines and have a legal 'recreation' of the P2305 cartridge.

        • asdefghyk 2 hours ago

          Jointly copyright would have to make it moore complicated ....

  • breadwinner 4 hours ago

    I don't see any credit being given to Digital Equipment Corporation (DEC) upon whose work this is based [1] [2] [3].

    The quotes below only talk about OS source code, but they found language interpreter source code as well, see register story.

    > "So, for a few years that is where I spent my time. I'd skip out on athletics and go down to this computer center. We were moving ahead very rapidly: BASIC, FORTRAN, LISP, PDP-10 machine language, digging out the operating system listings from the trash and studying those. Really not just banging away to find bugs like monkeys[laughs], but actually studying the code to see what was wrong." [4]

    > "While his parents were concerned with his slipping grades, there was no slowing him down. He and Bill would go “dumpster diving” in C-Cubed’s garbage to find discarded printouts with source code for the machine’s operating system"

    [1] https://en.wikipedia.org/wiki/BASIC-PLUS#Comparison_to_MS_BA...

    [2] https://everybasic.info/doku.php/basics/decbasic#influence_f...

    [4] https://americanhistory.si.edu/comphist/gates.htm

    [3] https://www.theregister.com/2000/06/29/bill_gates_roots/

    [5] https://paulallen.com/Futurist/Microsoft.aspx

    • bbanyc 3 hours ago

      The most significant contribution that DEC BASIC made was the REPL-like "immediate mode" that lets you execute individual statements without having to RUN the whole program. It was copied by both Microsoft and almost every other BASIC implementation since. Being able to fiddle around with "PRINT 2+2" is so fundamental to the BASIC experience that it surprised me to learn that Kemeny & Kurtz didn't come up with it, DEC did. (It came from DEC's earlier language FOCAL, which had an "English-like" syntax and doesn't resemble BASIC in any other way, and probably ultimately from LISP.)

      • EvanAnderson 2 hours ago

        Kemeny and Kurtz BASIC was compiled so the lack of a REPL makes sense.

    • phkahler 4 hours ago

      In that Basic 80 link (number 2) I would have expected another variant to be listed: Microsoft Basic for the Interact Home Computer which used an 8080 processor. BTW I still have my Interact in its box and the MS Basic on tape and some other stuff. Looking for a museum or appropriate place to send it.

      • 010101010101 3 hours ago

        I would try to computer history museum in Mountain View - they don’t accept everything, but if they want it it’d go to a super cool spot: https://computerhistory.org/acquisitions/

      • wvenable 4 hours ago

        I saw an ebay listing for one of these Interact computers today and spent a little time learning about it on YouTube. It's so strange to see your post on the same day about a computer I didn't know existed yesterday.

      • criddell 4 hours ago

        Chances are the tape is no longer readable.

    • ndiddy 3 hours ago

      The Microsoft BASIC language is similar to DEC BASIC, but the actual implementation is completely different. For example, DEC BASIC compiles the BASIC source code into bytecode as it's entered for faster execution, while Microsoft BASIC is a pure interpreter that simply interprets the source code tokens at runtime. You have to remember how different the memory-constrained 8-bit microcomputers were from a PDP-11. Even if Gates looked at the DEC BASIC source code, there wasn't much there that he could have used.

    • reaperducer 4 hours ago

      digging out the operating system listings from the trash and studying those.

      A lot of us did the same thing in that era. It's surprising how much information can be learned from what others think is useless.

      Thank you SUNY New Paltz and the IBM submarine facility (no idea what it was called) for not securing your Dumpsters. It's how I learned computing before it was taught in schools.

      • breadwinner 4 hours ago

        Back in those days, software was just an accessory to hardware, not something that was valuable and could be sold by itself. So they would not have thought to secure their dumpsters.

        Bill Gates played a significant role in jumpstarting the commercial software industry, especially with his "An Open Letter to Hobbyists" in 1976, which urged people to pay for software.

        • reaperducer 4 hours ago

          We pulled a lot of hardware out of those, too.

          ;)

    • DonHopkins 4 hours ago

      https://news.ycombinator.com/item?id=17998940

      DonHopkins on Sept 16, 2018 | parent | prev | next [–]

      Speaking of weird BASIC features, does anyone know why DECSYSTEM 20's BASIC had a "LISTREVERSE" command?

      Yes, it actually did exactly what it sounds like!

      Chalk one up for DEC and BASIC. What other programming languages support that feature, huh?

          DECSYSTEM 20 BASIC User's Guide: LISTREVERSE command
      
          LISTREVERSE
          LISTNHREVERSE
      
          LISTREVERSE and LISTNHREVERSE print the contents of the
          user's memory area in order of descending line numbers. 
          LISTREVERSE precedes the output with a heading,
          LISTNHREVERSE eliminates the heading.
      
          LISTREVERSE
      
          EQUIV             10:53                      13-NOV-75
      
          40    END
          35    PRINT "THE EQUIVALENT CURRENT IS",I, " AMPERES"
          25    I=E1/R
          10    INPUT R
          5     INPUT E1
      
          READY
      
      http://www.bitsavers.org/www.computer.museum.uq.edu.au/pdf/D...
      • rootbear 4 hours ago

        All I can think of is that it was a way to look at the end of a long program which wouldn't all fit on a display. Predating, I suppose, the 'tail' program, or whatever the DECSYSTEM 20 equivalent was.

        • leoc 3 hours ago

          I assume that it would be clearly useful if your terminal was a slow paper teleprinter. Once you got used to reading listings with the lines in reverse order, which shouldn't really be very difficult, LISTREVERSE would let you start reading from wherever you had got up to in your partly-completed listing, then cancel whenever you'd got enough context, instead of having to guess in advance how far up the program you'd want to look. You could even then print out the same range of lines again unreversed, if you wanted.

      • reaperducer 4 hours ago

        When you want to see the beginning of the program, but the terminal you're using is too laggy to send ^S in time to pause the listing?

        • JdeBP 4 hours ago

          Unlikely. LIST and LISTNH took an optional line number range.

    • dboreham 4 hours ago

      > upon whose work this is based

      Erum, none of your references show this (or come remotely close).

      MS did base NT on DEC work, and settled a court case as a result. Perhaps you're thinking of that story?

      BASIC the language pre-dates the DEC implementation (it came from Dartmouth College), and nobody would reasonably think that seeing the code for a high level language BASIC interpreter implementation for Machine A, then writing an assembler implementation for Machine B means you "based it on their work".

      • monocasa 4 hours ago

        MS BASIC is widely considered to have been based on the internal structure of DEC BASIC.

        • whartung 2 hours ago

          It may be widely considered, but that doesn't mean it's an accurate assertion.

          The internal structure of DEC BASIC PLUS is a far, far cry from what MS-BASIC (MSB) is. Outside of some shared syntax, the implementations are night and day.

          BASIC+ (B+) is compiled to p-code, not tokenized and then interpreted. Those are completely different runtime approaches. B+ has a raw text source that is edited and maintained by the runtime, MSB does not. After you hit ENTER on MSB, your "source code" is gone. It's converted, and not necessarily losslessly, into an internal tokenized form. That tokenized form is read and recreated into the source lines you see when you LIST the program.

          This scratch text file for the B+ program actually allows B+ to work in even more memory starved environments than MSB because the text is never fully loaded into RAM, so the bulk of RAM is compiled byte codes and data. You also don't have to "pay" for having extra spaces in your code, as the raw text does not impact that actual runtime size in contrast to MSB tokenized form.

          B+, being compiled, supported much different styles of things like loops and if statements.

            10 ODDSUM=ODDSUM + A(I) IF A(I) MOD 2 = 0 FOR I = 1 TO 10
          
          MS-BASIC can not handle that properly with it tokenizer based system.

          On the surface, they look similar with their interactive development environment. Internally, it was a completely different story.

        • leoc 4 hours ago

          Right, though there's two or three different questions here: whether DEC BASIC influenced MS BASIC, whether MS should have acknowledged that today, and whether DEC BASIC's influence on MS BASIC amounted to a copyright violation. On the last question, my guess would be that there's at least a reasonable argument that MS' use of the DEC BASIC code was transformative enough to get it off the hook, but IANAL. To the extent that it is in a grey area, honestly that's probably a good reason for MS to keep a diplomatic silence about any possible DEC influence today.

          • reaperducer 4 hours ago

            there's two or three different questions here

            Only if you weren't there.

            You won't find the answers to everything online.

            • leoc 3 hours ago

              But that doesn't mean that there aren't two or three questions, just that there there are answers to which I, and most people here, aren't privy. And, sure, that wouldn't come as a suprise.

  • SSLy 5 hours ago

    that Readme smells of LLMs and elderberries

    • cube00 4 hours ago

      QuillBot reports 100% AI for section "Why This Document is Historically Important"

    • lloydatkinson 5 hours ago

      > It democratized programming

      Yawn. Everything “democratizes” everything these days.

      • petcat 4 hours ago

        I think it commercialized programming. True democratization didn't really happen until Stallman, GCC, and the GPL.

        • criddell 4 hours ago

          It definitely democratized programming. There were a lot of us buying home computers and writing little programs that nobody ever saw. Nothing commercial ever came of the little utilities or games we made.

          Before we got our home computer, the closest I ever got to a computer was reading about them in the encyclopedia.

          What Stallman did a decade later was great if you happened to have access to the type of computer that could run Emacs. Even then, you probably didn't own the machine and maybe even had to pay for time on it by the hour. The small machines that ran Microsoft Basic were in people's homes.

          • HankStallone 3 hours ago

            Yeah, my Commodore 128 came with a 400-page system guide, nearly half of which was a BASIC reference and programming tutorial that explained concepts like looping and arrays. Those computers assumed you might want to program at least a little, and tried to make it easy to get started, so a lot of us did.

        • PaulHoule 4 hours ago

          BASIC put programming in reach of a wide range of people. Steve Wozniak himself documented his personal progression from implementing a Breakout game with gates (see [1]) to implementing it in 6502 assembly to implementing it in BASIC [2]

          You could have that BASIC experience on a minicomputer like the PDP-8, 11, or 20 which you might have at a high school or college earlier but with microcomputers you could have it in elementary school or at home.

          [1] https://thedoteaters.com/?bitstory=bitstory-article-2/breako...

          [2] http://blog.hardcoregaming101.net/2012/09/basic-history-of-b...

      • dmbche 4 hours ago

        How about when they invented BASIC

        • spogbiper 4 hours ago

          by "they" do you mean Kemeny and Kurtz at Dartmouth, back in the early 60s?

          • zozbot234 3 hours ago

            Kemeny and Kurtz's BASIC was an ahead-of-time compiled language which ran on time-shared machines; mainframes at first then smaller "mini"-computers. The typical interpreted BASIC for microcomputers was quite a bit simpler than that.

          • dmbche 2 hours ago

            Pretty sure linguistically the important bit is "when" and the "they" is not defined

            Like when awaiting pizza delivery, "they're here in 10 mins" doesn't directly relate to a specific guy

            Could be wrong though

            And no, to answer your question

    • oompydoompy74 5 hours ago

      Who cares?

  • AbraKdabra 5 hours ago

    The "48 years ago" detail for the commit date is genius.

    • shanselman 4 hours ago

      thanks!

      • kangs 3 hours ago

        i believe the markdown docs weren't 48y ago though /pedantic-scarcasm

  • desmondmonster 4 hours ago

    What editor did they use to write this code? I think this predated vi, and folks were probably using older tools they were familiar with. ed? How much of the source code could they see at once? Was there such thing as a "full screen editor"? If anyone can illuminate the development environment/workflow from the late 1970s I'd love to hear about it.

  • omega3 3 hours ago

    Looks like the comments were sanitized but they missed some:

    > CHKVAL: BIT VALTYP ;WILL NOT F UP "VALTYP".

  • delduca 3 hours ago

    I wrote a replica of the Macintosh in my game using Lua and Classic BASIC on my homemade engine. You can check it here:

    http://reprobate.site/?stage=pearintosh

  • JKCalhoun 2 hours ago

    Happy to see it works for the KIM-1.

  • ksherlock 4 hours ago

    While the bullshit generator might think it's "Compatible with period assemblers for 6502 development", that's a weird-ass cross assembler. For my money, a commented disassembly like https://6502disassembly.com/a2-rom/Applesoft.html using a more standard assembler is easier to read. It's interesting to compare the two though.

    • ksherlock 3 hours ago

      to expand on that, this assembler include the address mode as part of the instruction opcode rather than as part of the operand.

      normal:

          lda #0        ; load accumulator immediate
          lda (index),y ; load accumulator indirect,y
      
      weird:

          ldai 0        ; load accumulator immediate
          ldady index   ; load accumulator indirect,y
      • zozbot234 3 hours ago

        It's not that weird, and it's a lot simpler. It maps directly to how the opcodes are represented in the binary machine code and saves the effort of parsing and pretty-printing the standard syntax. With a different ISA one might argue that there's simply too many insn+addressing mode combinations to represent each with its own mnemonic, but this doesn't really apply to something as simple as the 6502.

        • tom_ 2 hours ago

          I'd say it's definitely weird for a standalone assembler. For standalone 6502 assemblers, some approximation of the standard MOS-type syntax has always been near-universal. Though you're quite correct about some of the advantages of doing it this way.

          (I say "near universal", because Acorn's MASM had a similar syntax. (See, e.g., https://github.com/stardot/AcornDmosBasic/blob/master/src/DB...) I don't remember ever seeing that described as anything other than an oddity.)

          And, also, there are probably assemblers smooshed into Forth or Lisp (or implemented with assembler macros for an assembler targeting some completely unrelated CPU) that work in a similar way, because you're limited by the pre-existing syntax rules. But that feels like a separate category

  • chris_st 3 hours ago

    First assembly language I learned was 6502 for the Apple II. Brings back some memories (...once I scrolled way way way down to actual 6502 code!).

  • drittich 5 hours ago

    I cut my teeth on that language, and still keep a Commodore PET around for old times sake.

    • eggy 4 hours ago

      I had my Commodore PET for 10 years from 1977 to 1987 until I went away and my cousin borrowed it, and then believing I was not coming back to the US from Spain, sold it!

      I loved the cassette drive and all-in-one chassis. Ah, typing in programs from magazines and creating programs from scratch with PET graphics on the keys! I miss those days. So much wonder and fun.

    • usr1106 3 hours ago

      I did self-learned programming on an PET with the half-sized keyboard and cassette deck at highschool starting 1980. After 3 weeks or so I had filled the 7 KB of memory and needed to optimize GOTO commands by rearrangign the code. Every digit in the line number took 1 Byte, so many GOTO 20000 were wasteful. The trick to reveal the Microsoft text was known, but nobody knew what company that was. The PC did not exist yet.

      My next step was Pascal on a VAX at Uni. Never looked back to PET or Microsoft. Linux user today.

  • mikesabbagh 3 hours ago

    I had such a good time on my Commodore 64

  • DrillShopper 3 hours ago

    I cannot recommend enough Ben Eater's 6502 computer build on YouTube[1] if you want to play with a 6502 computer from the ground up. It is meant to be accessible to the ambitious amateur. It is roughly Apple 1 compatible, and he has videos on how to add new commands in Microsoft BASIC as well as how to modify Microsoft BASIC to support the computer.

    Seeing him git clone Microsoft BASIC and make the changes atop it was definitely a weird but awesome moment.[2]

    [1] https://youtube.com/playlist?list=PLowKtXNTBypFbtuVMUVXNR0z1...

    [2] https://youtu.be/XlbPnihCM0E

  • lysace 4 hours ago

    That recent "purchase of Commodore" by some Youtuber... it doesn't really include the distribution rights of the C64 ROM containing (a newer version of) this 6502 Basic, right?

    • fredoralive 4 hours ago

      IP of the original Commodore kinda got scattered after the breakup in the 1990s. The Youtuber AIUI have the trademarks, so they can call themselves Commodore, and sell Commodore branded computers.

      The original C64 ROMs (along with AmigaOS) are owned by a company called Cloanto. (Well, I suspect with Amiga OS in particular, it's probably more complicated than that). Not sure if you have to licence MS BASIC separately, or if the favourable deal Jack Tramiel negotiated way back when still covers it.

      This split is why the mini C64/A500 units a few years back had actual Commodore software, but didn't have Commodore branding, as they could get a deal with Cloanto, but not the previous owners of the C= logo etc.

      • zozbot234 3 hours ago

        The new Commodore folks seem to be on friendly terms with Cloanto, so this MIT-licensed release from Microsoft is great news for them and I wonder if it was partly instigated by the Commodore developments. If only because, in principle, it saves everyone the effort and cost of having a difficult negotiation over something as silly as the purported IP value of those old BASIC ROMs.

      • lysace 3 hours ago

        Thanks. Odd product portfolio: https://cloanto.com/

  • ChrisArchitect 3 hours ago

    What's the timeline of BASICs here? I thought GW-Basic was the MS one of my youth after Altair?

  • vegadw an hour ago

    ` LDWDI WORDS ;MORE BULLSHIT.`

  • cyberax 4 hours ago

    I think, it's the first time I saw "48 years ago" in the most recent change column on Github.

  • DrNosferatu 4 hours ago

    Now release the Z80 port!

    • mrspuratic 4 hours ago

      A long time ago my uncle gave me his old Exidy Sorceror, Z80/S100 system. It came with MS BASIC V1.0 on a ROM cartridge. Sadly I never copied the image. Sold it to a collector in Germany IIRC.

  • DonHopkins 4 hours ago

    https://github.com/microsoft/BASIC-M6502/blob/main/m6502.asm...

      RETURN: BNE GORTS  ;NO TERMINATOR=BLOW HIM UP.
  • mzajc 4 hours ago

    > SECURITY.md

    Never change, bureaucracy :)

  • hu3 5 hours ago
    • dang 3 hours ago

      Thanks! We'll add that link to the top text above.

  • LeoPanthera 4 hours ago

    That readme is obviously AI generated. I’m happy for anything this historical being open sourced, but I now wonder what the AI has done to the code itself. What a shame.

    • NitpickLawyer 4 hours ago

      Well, we can be pretty sure it didn't touch comments :)

      > 12/1/77 FIXED PROBLEM WHERE PROBLEM WITH VARTXT=LINNUM=BUF-2 CAUSING BUF-1 COMMA TO DISAPPEAR

    • pjmlp 4 hours ago

      They now have OKRs to use AI everywhere, even .NET tooling is getting AI tainted.

    • ocdtrekkie 4 hours ago

      I assume AI only generated the readme file. But I would say if AI boilerplate eases Microsoft releasing more of their old code to the public, I am okay with that.

      Microsoft recently closed a 7 year old .NET documentation bug I opened using Copilot. I am not a fan of AI but the submitted fix was far superior to the basically useless message that had been previously present, so net positive. At being ignored for 7 years, it was unlikely to get better from human effort.

      • LeoPanthera 4 hours ago

        I wouldn't assume that at all. If they're using AI for something as trivial as a readme, I think it is a very safe assumption that that's not all they're using it for.

        I wish code repos had a "contaminated by AI" flag.

    • DonHopkins 4 hours ago

      Why do you have any reason to believe AI generated any of the 6502 code? What possible reason or motivation could there be for that? Wouldn't it spoil the entire reason for releasing it, totally miss the point of releasing original historic code? Who might possibly benefit by doing that? Are you just making up baseless conspiracy theories or do you have any factual basis for that accusation?

      Seems hypocritical for a human being to hallucinate a conspiracy theory about LLMs, with no evidence whatsoever.