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
Applesoft 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!
==Early evolution== The original Applesoft, stored in RAM as documented in its Reference Manual of November 1977, has smaller interpreter code than the later Applesoft II, occupying 8Β½ KB of memory,<ref>{{cite book |title = Applesoft Extended Precision Floating Point Basic Language Reference Manual |url = https://archive.org/details/Apple_II_Extended_Precision_Floating_Point_BASIC_Language_Reference_Manual/mode/1up |publisher = Apple Computer, Inc. |date = November 1977 }}</ref> instead of the 10 KB used by the later Applesoft II. Consequently, it lacks a number of command features developed for the later, mainstream version: * All commands supporting Apple's "high resolution" graphics (9 total) * Error-trapping with ONERR...GOTO and RESUME * Machine-routine shorthand call "&" * Screen-clearing HOME (a call to a system ROM routine) * Text-output control NORMAL, INVERSE, FLASH and SPEED= * The print-space function SPC() is listed among reserved words in the manual, but is not otherwise documented (the TAB() print-function ''is'' documented) * Cassette tape storage of numerical arrays: STORE and RECALL * Device response: WAIT as well as several the later version would have, that had already been present in Apple's Integer BASIC: * Program-line deletion: DEL * Machine-routine access: CALL * Peripheral device access: IN# and PR# (although IN without "#" is listed among reserved words) * Memory range control: HIMEM: and LOMEM: * Execution tracking for debugging: TRACE and NOTRACE * Screen-positioning: HTAB and VTAB * Subroutine aborting POP * Functions PDL() to read the analog controllers, and SCRN() to read the low-resolution graphics screen (both accessing system ROM routines) In addition, its low-resolution graphics commands have different names from their Integer BASIC/Applesoft II counterparts. All command names are of the form PLTx such that GR, COLOR=, PLOT, HLIN and VLIN are called PLTG, PLTC, PLTP, PLTH, and PLTV, respectively. The command for returning to text mode, known as TEXT in other versions, is simply TEX, and carries the proviso that it has to be the last statement in a program line. Applesoft BASIC 1.x was closer to Microsoft's original 6502 BASIC code than the later Applesoft II; it retained the Memory Size? prompt and displayed a Microsoft copyright notice. To maintain consistency with Integer BASIC, the "Ok" prompt from Microsoft's code was replaced by a ] character. Applesoft 1.x also prompted the user upon loading if they wished to disable the REM statement and the LET keyword in assignment statements in exchange for lores graphics commands. The USR() function is also defined differently, serving as a stand-in for the absent CALL command. Its argument is not for passing a numerical value to the machine-language routine, but is instead the call-address of the routine itself; there is no "hook" to pre-define the address. All of several examples in the manual use the function only to access "system monitor ROM" routines, or short user-routines to manipulate the ROM routines. No mention is made of any code to calculate the value returned by the function itself; the function is always shown being assigned to "dummy" variables, which, without action to set a value by user-code, just receive a meaningless value handed back to them. Even accessed ROM routines that return values (in examples, those that provide the service of PDL() and SCRN() functions) merely have their values stored, by user-routines, in locations that are separately PEEKed in a subsequent statement. Unlike in Integer BASIC and Applesoft II, the Boolean operators AND, OR and NOT perform [[bitwise operation]]s on 16-bit integer values. If they are given values outside that range, an error results. The terms OUT and PLT (and the aforementioned IN) appear in the list of reserved words, but are not explained anywhere in the manual.
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)