1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-09-10 13:54:52 +00:00
6502bench/SourceGen/RuntimeData/Apple/Applesoft.sym65
Andy McFadden 2828cc8ca7 Apply project/platform symbols to Numeric/Address data operands
A ".dd2 <address>" item would get linked to an internal label, but
references to external addresses weren't doing the appropriate
search through the platform/project symbol list.

This change altered the output of the 2019-local-variables test.
The previous behavior was restored by disabling "nearby" symbol
matching in the project properties.

Updated the "lookup symbol by address" function to ignore local
variables.

Also, minor updates to Applesoft and F8-ROM symbol tables.
2019-09-15 14:38:12 -07:00

165 lines
4.1 KiB
Plaintext

; Copyright 2018 faddenSoft. All Rights Reserved.
; See the LICENSE.txt file for distribution terms (Apache 2.0).
;
; Sources:
; What's Where in the Apple, by William F. Luebbert
*SYNOPSIS Applesoft BASIC addresses and constants
USRVEC @ $0A ;USR() command vector
HCOLOR1 @ $1C ;hi-res color mask
COUNTH @ $1D ;hi-res high-order byte of step for line
HBASL @ $26 ;base address for hi-res drawing
RNDL @ $4E ;low byte of KEYIN "random" value
RNDH @ $4F ;high byte of KEYIN "random" value
LINNUM @ $50 ;line number ($50-51)
TEXTTAB @ $67 ;pointer to start of Applesoft program (2b)
VARTAB @ $69 ;pointer to start of Applesoft variables (2b)
ARYTAB @ $6B ;pointer to start of Applesoft array space (2b)
STREND @ $6D ;pointer to end of numeric storage (2b)
FRETOP @ $6F ;pointer to end of string storage (2b)
MEMSIZE @ $73 ;Applesoft HIMEM (2b)
CURLIN @ $75 ;Applesoft current line number (2b)
FACMO @ $A0 ;middle-order byte of mantissa of FAC
FACLO @ $A1 ;low-order byte of mantissa of FAC
FACSIGN @ $A2 ;single byte sign of FAC
PRGEND @ $AF ;pointer to end of program (2b)
CHRGET @ $B1 ;get next character or Applesoft token
CHRGOT @ $B7 ;get next, but don't advance TXTPTR
TXTPTR @ $B8 ;points at next char or token
AUTORUN @ $D6 ;set to $80 to auto-run
ERRFLG @ $D8 ;$80 if onerr active
HPAG @ $E6 ;hi-res page to draw on ($20 or $40)
SCALE @ $E7 ;hi-res graphics scale factor
AMPERV @ $03F5 ;JMP to function that handles Applesoft '&' cmds
;
; Useful Applesoft routines.
; TODO: there are many more
;
ERROR @ $D412 ;print error based on X-reg
FRMNUM @ $DD67 ;evalute expression at TXTPTR, result into FAC
SYN_ERROR @ $DEC9 ;throw SYNTAX ERROR
CHKCOM @ $DEBE ;checks TXTPTR for comma
ILLQ_ERROR @ $E199 ;throw ILLEGAL QUANTITY ERROR
GETADR @ $E752 ;convert FAC to 2-byte integer in LINNUM
GETBYT @ $E6F8 ;gets byte, in X/FACLO
HFNS @ $F6B9 ;get hi-res x/y for hplot
;
; Applesoft BASIC tokens.
;
*TAG Applesoft-Tokens
TOK_END = $80
TOK_FOR = $81
TOK_NEXT = $82
TOK_DATA = $83
TOK_INPUT = $84
TOK_DEL = $85
TOK_DIM = $86
TOK_READ = $87
TOK_GR = $88
TOK_TEXT = $89
TOK_PR = $8a
TOK_IN = $8b
TOK_CALL = $8c
TOK_PLOT = $8d
TOK_HLIN = $8e
TOK_VLIN = $8f
TOK_HGR2 = $90
TOK_HGR = $91
TOK_HCOLOR = $92
TOK_HPLOT = $93
TOK_DRAW = $94
TOK_XDRAW = $95
TOK_HTAB = $96
TOK_HOME = $97
TOK_ROT = $98
TOK_SCALE = $99
TOK_SHLOAD = $9a
TOK_TRACE = $9b
TOK_NOTRACE = $9c
TOK_NORMAL = $9d
TOK_INVERSE = $9e
TOK_FLASH = $9f
TOK_COLOR = $a0
TOK_POP = $a1
TOK_VTAB = $a2
TOK_HIMEM = $a3
TOK_LOMEM = $a4
TOK_ONERR = $a5
TOK_RESUME = $a6
TOK_RECALL = $a7
TOK_STORE = $a8
TOK_SPEED = $a9
TOK_LET = $aa
TOK_GOTO = $ab
TOK_RUN = $ac
TOK_IF = $ad
TOK_RESTORE = $ae
TOK_AMPER = $af
TOK_GOSUB = $b0
TOK_RETURN = $b1
TOK_REM = $b2
TOK_STOP = $b3
TOK_ON = $b4
TOK_WAIT = $b5
TOK_LOAD = $b6
TOK_SAVE = $b7
TOK_DEF = $b8
TOK_POKE = $b9
TOK_PRINT = $ba
TOK_CONT = $bb
TOK_LIST = $bc
TOK_CLEAR = $bd
TOK_GET = $be
TOK_NEW = $bf
TOK_TAB = $c0
TOK_TO = $c1
TOK_FN = $c2
TOK_SPC = $c3
TOK_THEN = $c4
TOK_AT = $c5
TOK_NOT = $c6
TOK_STEP = $c7
TOK_PLUS = $c8
TOK_MINUS = $c9
TOK_MULT = $ca
TOK_DIV = $cb
TOK_EXPOP = $cc
TOK_AND = $cd
TOK_OR = $ce
TOK_GREATER = $cf
TOK_EQUAL = $d0
TOK_LESSER = $d1
TOK_SGN = $d2
TOK_INT = $d3
TOK_ABS = $d4
TOK_USR = $d5
TOK_FRE = $d6
TOK_SCRN = $d7
TOK_PDL = $d8
TOK_POS = $d9
TOK_SQR = $da
TOK_RND = $db
TOK_LOG = $dc
TOK_EXP = $dd
TOK_COS = $de
TOK_SIN = $df
TOK_TAN = $e0
TOK_ATN = $e1
TOK_PEEK = $e2
TOK_LEN = $e3
TOK_STR = $e4
TOK_VAL = $e5
TOK_ASC = $e6
TOK_CHR = $e7
TOK_LEFT = $e8
TOK_RIGHT = $e9
TOK_MID = $ea
; end of tokens