John Wilson uploaded a file.
· 20 May 2019 ·
Microsoft BASIC Decoded. I learned a lot about my TRS-80 and assembly language programming from this book
Microsoft BASIC Decoded.pdf · version 1
Looks like a good read, thanks for sharing!
Be interesting to compare this to other Microsoft BASICs, like Pet and C64, see how much they have in common.
in a similar vein - http://www.primrosebank.net/.../CompleteSpectrumROMDisass...
John Wilson that was like my bible as a kid 🙂 best bit i remember is something to do with the floating point routines where they spot a bug lol
yes i also lent from the trs80 assembly code & how the hardware works ,, i never met a mci / cpu before it it was a step learning curve , but i went onto design with the z80 for years it was / is a great chip
Interesting. I worked at a place where my boss reverse engineered this. MS wrote us a nasty letter and apparently we paid them some money.
The same happened with WordStat and to would not play so we wrote it from scratch. That's probably why they're not around with an attitude like that. Pity, it really was the best of them.
Somewhere, I have issues of one of the magazines devoted to the Tandy / Radio Shack "TRS-80" Color Computer where they published a commented disassembly of all the CoCo ROMs. The ROM code had a nice "hook" mechanism for automatically chaining new ROMs together and extending the Microsoft BASIC interpreter. I was originally in love with the Model III and really wanted one those instead of a CoCo. I bought and studied the Model III books, but never realized my dream of buying one of the actual computers. I ended up with a CoCo as kind of a consolation prize... But as my knowledge grew, I grew to love the 6809 microprocessor and writing assembly code for it. The CoCo BASIC was missing several features that the Model III had, such as ON ERROR... GOTO. After reading the magazine articles on the CoCo ROMs, I wrote my own assembly code to hook into the CoCo BASIC interpreter and implement a bunch of features like ON ERROR... GOTO, an interrupt-driven software real-time clock (unfortunately, never very accurate -- it drifted very badly), variables like TIME$, etc. Another magazine article had a BASIC program with a bunch of DATA statements that represented a text character set with true lowercase letters and other niceties. The BASIC program "drew" the characters on the graphics screen. It looked nice, but was horribly slow. So I captured the font data into raw binary form, wrote my own assembly code to "blit" the characters on to the graphics screen, and hooked my assembly code into the BASIC interpreter so that any normal BASIC program (and normal interaction with the interpreter such as editing lines, etc.) could all use lowercase on the graphics screen as the "normal" mode. It was slower than the hardware text screen, but still pretty quick -- infinitely faster than drawing the characters in BASIC.
I also made the interpreter print "Ready" like the Model III, rather than the CoCo's usual "OK" prompt.
I glommed all these hacks together and called it "Color BASIC Enhanced 1.0". 🙂
Later, I moved to OS-9 and a CoCo 3. My "Color BASIC Enhanced" creation is hopelessly lost to the dusts of time...
Yes, knowing all the CALL locations made some programs run faster in BASIC.
My boss bought one of the first TRS-80s in NZ. He got me to write a payroll program for his 25 employees. It used to take 3 hours for the office lady to do the payroll. With my program it took 3 minutes!