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
Commodore 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!
==Versions and features== A list of CBM BASIC versions in chronological order, with successively added features: ===Released versions=== * V1.0: PET 2001 with [[chiclet keyboard]] and built-in [[Commodore Datassette|Datassette]] (original PET) ** arrays limited to 256 elements ** [[PEEK and POKE|PEEK]] command explicitly disabled over BASIC ROM locations above $C000 * V2.0 (first release): PET 2001 with full-travel keyboard & upgrade ROMs ** add [[IEEE-488]] support ** improved the garbage collection<ref name="zimmers.net">{{cite web|url=http://www.zimmers.net/anonftp/pub/cbm/firmware/README.txt|title=BASIC 4.0 Memory Map|website=zimmers.net|access-date=21 August 2023}}</ref> ** fix array bug ** Easter egg β entering {{kbd|WAIT6502, ''[number]''}} displays {{mono|MICROSOFT!}} an arbitrary number of times * V4.0: PET/CBM 4000/8000 series (and late version PET 2001s) ** [[Commodore DOS|disk operations]]: {{mono|DLOAD,DSAVE,COPY,SCRATCH,}} etc. (15 in all) ** disk error-channel variables: {{mono|DS,DS$}} ** greatly improved garbage-collection performance<ref name="zimmers.net"/> * V2.0 (second release, after 4.0): [[VIC-20]]; [[Commodore 64|C64]] * V2.2 [[Commodore 64 Games System|C64GS]] (1990) * V4+ : [[Commodore CBM-II|CBM-II]] series (aka B, P range) ** memory management: {{mono|BANK}} ** [[Commodore DOS|more disk operations]]: {{mono|[[BLOAD]], [[BSAVE]],DCLEAR}} ** formatted printing: {{mono|PRINT USING,PUDEF}} ** error trapping: {{mono|DISPOSE}} ** alternative branching: {{mono|ELSE}} ** dynamic error handling: {{mono|TRAP,RESUME,ERR$()}} ** flexible {{mono|DATA}} read: <code>RESTORE ''[line number]''</code> ** string search function: {{mono|INSTR}} * V3.5: [[Commodore 16|C16/116]], [[Commodore Plus/4|Plus/4]] ** sound and graphics commands ** [[joystick]] input: {{mono|JOY}} ** [[decimal]] β [[hexadecimal]] conversion: {{mono|DEC(),HEX$()}} ** structured looping: {{mono|DO,LOOP,WHILE,UNTIL,EXIT}} ** function key assignment: {{mono|KEY}} (also direct mode) ** program entry/editing: {{mono|AUTO,DELETE,RENUMBER}} ** [[debug]]ging (tracing): {{mono|[[TRON command|TRON]], [[TROFF]]}} ** [[machine code monitor|MLM]] entry command: {{mono|MONITOR}} ** C(1)16, Plus/4 Easter egg β enter {{kbd|SYS 52650}} * V7.0: [[Commodore 128|C128]] ** more sound and graphics commands, including [[sprite (computer graphics)|sprite]] handling ** built-in sprite editor: {{mono|SPRDEF}} ** multi-statement blocks for {{mono|IF THEN ELSE}} structures: {{mono|BEGIN,BEND}} ** [[paddle (game controller)|paddle]], [[lightpen]] input: {{mono|POT,PEN}} ** [[exclusive disjunction|exclusive or]] function: {{mono|XOR}} ** get variable address: {{mono|POINTER}} ** text mode windowing: {{mono|WINDOW}} ** controlled time delay: {{mono|SLEEP}} ** memory management: {{mono|SWAP,FETCH,STASH,FRE(1)}} ** used the 128's [[bank switching]] to store program code separately from variables. Variable values would be preserved across program executions if the program was started with the GOTO command. ** [[Commodore DOS|more disk operations]]: {{mono|BOOT,DVERIFY}} ** CPU speed adjustment: {{mono|FAST,SLOW}} (2 vs 1 MHz) ** enter C64 mode: {{mono|GO64}} ** undocumented, working: {{mono|RREG}} (read CPU registers after a {{mono|SYS}}) ** unimplemented commands: {{mono|OFF,QUIT}} ** C128 Easter egg β enter {{kbd|SYS 32800,123,45,6}} ===Unreleased versions=== * V3.6 : [[Commodore LCD]] (unreleased prototype). Almost identical to V7.0, with the following differences:<ref>{{cite web|url=http://mikenaberezny.com/2008/10/04/commodore-lcd-firmware/|title=Mike Naberezny β Commodore LCD Firmware|website=mikenaberezny.com|access-date=8 August 2018}}</ref> ** {{mono|VOLUME}} instead of {{mono|VOL}} ** {{mono|EXIT}} instead of {{mono|QUIT}} ** {{mono|FAST,SLOW}} commands not present ** Additional command: {{mono|POPUPS}} * V10 : [[Commodore 65]] (unreleased prototype) ** graphics/video commands: {{mono|PALETTE,GENLOCK}} ** [[computer mouse|mouse]] input: {{mono|MOUSE,RMOUSE}} ** text file ({{mono|SEQ}}) utility: {{mono|TYPE}} ** program editing: {{mono|FIND,CHANGE}} ** memory management: {{mono|DMA,FRE(2)}} ** unimplemented commands: {{mono|PAINT,LOCATE,SCALE,WIDTH,SET,VIEWPORT,PASTE,CUT}}
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)