Ric Weiland, Bill Gates and Monte Davidoff at Microsoft wrote MOS 6502 BASIC in the summer of 1976 by converting the Intel 8080 version. When I reached 13K, I bought Microsoft’s Business BASIC. If you disassemble a single binary, you can never tell why something was done in a certain way. Something similar happens in the case of PRINT 5+"A"+-5: The interpreter will build up the formula on the CPU stack, but miss the string/float type mismatch because of the “+-“, and messes up its stack when removing items. But they also introduced another bug: In input handling, again concerning the location of the input buffer, there is the following code: This code has been in place since 1.0 and assumes that INPUTBUFFER is above $0100. If you have any information about this artifact and its Add a case in defines.s to define one of CBM1, CBM2, APPLE etc., because you need one flavour of platform specific code, and include your own defines_*.s. Later fixes in generic code are not necessarily identical to these patches. cp $vide_dir/lib/vice/PET/basic2 pet The start message looks something like this: Microsoft’s codebase was very generic and didn’t make any assumptions on the machine it was running on. BASIC" affixed overtop and on the surface of a sticker that reads dd if=tmp/cbmbasic2.bin of=pet/basic2 bs=1 count=8192 Be careful though to configure VICE to emulate the correct version of the PET. Read more about Commodore 64 BASIC V2 and comparing it to other computers on my blog http://www.commodore64crap.wordpress.com . use workaround for buggy 6502s from 1975/1976; not safe for CONFIG_SMALL! It seems Commodore didn’t like the “OK” prompt, so they renamed it to “READY.”. BASIC 2 contains mostly bugfixes (all input buffer location bugs have finally been eliminated), small optimizations (reuse two adjacent zeros inside the floating point constant of 1/2 as the 16 bit constant of zero instead of laying it down separately), better error handling for DEF FN, and support for “GO TO” with a space in between as a synonym for GOTO. Great job! about the content of this site and its usage. :-). at Bandley Drive in Cupertino) with a stamped label "APPLESOFT This work is dedicated to the memory of my dear hacking pal Michael “acidity” Kollmann. A few notes on Ohio Scientific 6502 Basic: Ohio Scientific (OSI) actually had more than a few versions of 6502 basic. It has color display, sound and disk support. LE633: Every version since 2.0a had the PETSCII version of the “MICROSOFT!” text in it – and so did every version of BASIC for 6809. AppleSoft II is the oldest version of Microsoft BASIC 2. * RAMSTART is $0400, while it should be $0800 on the C64. First there was the “Super Expander” cartridge, written by Commodore itself, and then “Simons’ Basic”, written by a British teenager (hence the COLOUR rather than COLOR command) but marketed by Commodore. The posted source contains c-style comments in inline.s, poke.s and init.s which are not supported by V2.12.9 (20080831 snapshot) or the V2.12.0 release. I’ve written a script to launch xpet for the current build of cbmbasic2: the Commodore 64), meaning that its graphics and sound hardware weren’t supported and that this computer would continue to be sold with the same crappy BASIC until 1994. We sent Clearly, I still haven’t figured out all of the communication paths between the Master Component and the Keyboard Component, nor have I figured out where all the different flags get set from. Every BASIC program on the Apple II … These items can probably be fix pretty easily, but: Thanks for all your work researching and writing. The CHRGET code, a super-optimized function living in the zeropage has been patched with a call to this function: This very unoptimized piece of code adds at least 17 cycles to every CHRGET, and will slow down execution measurably. on the Apple II, the crashing line number is 437761, rather than 350721, because the compared token has a different value. Now create a new version in the source base, as described earlier. apple ii basic free download. Checking the source code (lines 87-89 of flow1.s), it appears this NOP was in the PET BASIC v2, but none of the other 6502 BASICs. Depending on the Basic version the depth of the string stack may vary, e.g. story please contact After a series of delays, the “Keyboard Component”, an extension with its own 6502 CPU and Microsoft BASIC, was released in 1982, but canceled very soon. C1CB AD 7F 04 LDA $047F ; If this really does get decremented every tick, maybe it gets set to $FF on an error, and the error expires after ~4 seconds??? “…HDE added the CHAINING function to their already much enhanced version of MICROSOFT Basic. Speaking of patches: Commodore BASIC 1 has been binary patched a lot: There are six patch functions appended to the very end of the interpreter image that work around miscellaneous fixes. It should not be too hard to use this broken-out part (in a 6 digit or 9 digit version) standalone in your own creations. I’ve seen lots of references to locations to either side of $047F, but never $047F itself. While most OEM versions were heavily modified in its user interaction (startup screen, line editing…), most of the code was very similar; some functions were even never changed for any version of BASIC. Also, C-style comments at the end of .endif’s are being reported as junk characters. our Webmaster. Similarly, the two extra constants used for generating random numbers (CONRND1, CONRND2) are 4 bytes in all versions, which is one byte short for 9 digit BASIC. headquartered First duplicate one of the cfg files, and add it to make.sh. – I still can’t figure out, why you can use c-style comments in your source. Send your changes to me. What this seems to be is a very, very early release of BASIC for the Apple II from Microsoft. Several statements with these expressions are generating “range” errors. Be careful that you don’t overwrite the screen editor code. cbmbasic2 is a good start, as you can quite easily test the resulting images in the VICE emulator – CC65 can even provide symbol information for the VICE debugger. Looking through var.s I see what may be a reference to this; at line L2ED8 I see it looking for #$24, and at L2EE2 I see it looking for #$25, which I assume are the $ and % symbols? It is the first BASIC from an OEM that had extended BASIC which was re-sync’ed with Microsoft’s codebase. Monte Davidoff mentioned integer variables were part of BASIC-PLUS that formed the pattern for MS BASIC. In AppleSoft II, Apple also eliminated the “memory size” and “terminal width” questions. jsr LE8F3 I thoroughly enjoyed reading this, and also the Easter Egg article. to master version made by Microsoft. This bug is in “FRMEVL”. I really just ought to publish what I have reverse-engineering-wise and see what more eyes might bring. check both bytes of the caller’s address in NAMENOTFOUND, use 6 digit FP instead of 9 digit, use 2 character error messages, don’t have GET, Function names and all uppercase comments taken from Bob Sander-Cederlof’s excellent, Thanks to Joe Zbicak for his help with Intellivision Keyboard BASIC. At least knowing the structure of Microsoft BASIC made it easy to intuit what the Keyboard-specific bits were trying to accomplish, even if I wasn’t sure how they were accomplishing them. Possibly it was released between the KIM Basic and Applesoft version II (that is a guess based on the dates).

Where To Buy Mutti Tomatoes, Fx-5800p Programming Tutorial, Ken's Italian Dressing, Why Is My Pieris Losing Its Leaves, Fuse Esb Tutorial, Python Set Operations, Padmaka Plant In Tamil, Msc Engineering Management With Placement In Uk, Cherry Tree Canker Treatment, Event Invite Wording, How To Pronounce Stigmata, Pitzer Correlation Table,