Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Microsoft BASIC
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==={{anchor|6502 BASIC}}6502 BASIC=== Microsoft ported BASIC-80 to the 6502 during the summer of 1976; it was mostly a straight port of the 8K version of BASIC-80 and included the same prompts asking for memory size and if the user wanted floating point functions enabled or not (having them active used an extra 135 bytes of memory). The earliest machines to use 6502 BASIC were the [[Ohio Scientific]] Model 500 and [[KIM-1]] in 1977.<ref name=pagetable1>{{cite web |last1=Steil |first1=Michael |title=Bill Gates' Personal Easter Eggs in 8 Bit BASIC |url=http://www.pagetable.com/?p=43 |website=pagetable.com |access-date=4 February 2015 |ref=bgates-eggs |date=30 September 2008}}</ref> 6502 BASIC included certain features from Extended BASIC such as user-defined functions and descriptive error messages, but omitted other features like double precision variables and the <code>PRINT</code> <code>USING</code> statement. As compensation for not having double precision variables, Microsoft included 40-bit floating point support instead of BASIC-80's 32-bit floating point and string allocation was dynamic (thus the user did not have to reserve string space like in BASIC-80). However, vendors could still request BASIC with 32-bit floating point for a slightly smaller [[memory footprint]]; as one example, Disk BASIC for the Atari 8-bits used 32-bit floating point rather than 40-bit.{{Citation needed|date=April 2022}} Standard features of the 9K version of Microsoft 6502 BASIC included: * <code>GET</code> statement to detect a key press. * Line crunching{{snd}} program lines do not require any spaces except between the line number and statement. * Only supported variable types are character string, single precision floating point, and 16-bit signed integer (saves space in arrays, otherwise useless and slower than floating point, as all calculations are done in floating point anyway). * Long variable names can be used, but only the first two characters are significant. * Dynamic string allocation. 6502 BASIC lacked a standardized set of commands for disk and printer output; these were up to the vendor to add and varied widely with each implementation. Later implementations of 6502 Basic (1983β) had many vendor specific improvements; for example later versions of Commodore BASIC had the following: * Disk commands (<code>DIRECTORY</code>, <code>DSAVE</code>, <code>DLOAD</code>, <code>BACKUP</code>, <code>HEADER</code>, <code>SCRATCH</code>, <code>COLLECT</code>, <code>DVERIFY</code>, <code>COPY</code>, <code>DELETE</code>, <code>RENAME</code>, etc.) * Graphics commands (<code>CIRCLE</code>, <code>DRAW</code>, <code>BOX</code>, <code>COLOR</code> (of background, border, etc.), <code>PAINT</code>, <code>SCALE</code>) * Graphics block copy and logical operation with the existing graphical screen (<code>SSHAPE</code> and <code>GSHAPE</code> with <code>OR</code>, <code>AND</code>, <code>XOR</code>, etc.) * Sprite definition, displaying and animation commands on C128, even saving sprites to binaries * Sound commands (<code>VOL</code>, <code>SOUND</code>), later on at C=128 Music commands (ADSR and SID filter programming (<code>ENVELOPE</code> and <code>FILTER</code>), <code>PLAY</code>, <code>TEMPO</code> commands) * Signs of more structured programming: <code>IF</code>β<code>THEN</code>β<code>ELSE</code>, <code>DO</code>β<code>LOOP</code>β<code>WHILE</code>/<code>UNTIL</code>β<code>EXIT</code>. * Extended I/O commands for special features: <code>JOY</code>, function keys * Debugging commands: <code>STOP</code>, <code>CONT</code>, <code>TRON</code>, <code>TROFF</code>, <code>RESUME</code> * Extended handling of character screen: <code>WINDOW</code> * Support easier program development: <code>RENUMBER</code>, <code>NEW</code>, <code>MONITOR</code>, <code>RREG</code>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)