1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-08-12 21:29:18 +00:00
6502bench/SourceGen/RuntimeData/Apple/F8-ROM.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

153 lines
6.2 KiB
Plaintext

; Copyright 2018 faddenSoft. All Rights Reserved.
; See the LICENSE.txt file for distribution terms (Apache 2.0).
;
; Sources:
; NiftyList, by Dave Lyons
; What's Where in the Apple, by William F. Luebbert
*SYNOPSIS Symbols from the Apple II monitor ROM
WNDLEFT @ $20 ;left column of scroll window
WNDWDTH @ $21 ;width of scroll window
WNDTOP @ $22 ;top of scroll window
WNDBTM @ $23 ;bottom of scsroll window
CH @ $24 ;cursor horizontal displacement
CV @ $25 ;cursor vertical displacement
GBASL @ $26 ;base address for lo-res drawing (lo)
GBASH @ $27 ;base address for lo-res drawing (hi)
H2 @ $2C ;right end of horizontal line drawn by HLINE
V2 @ $2D ;bottom of vertical line drawn by VLINE
INVFLAG @ $32 ;text mask (255=normal, 127=flash, 63=inv)
PROMPT @ $33 ;prompt character
CSWL @ $36 ;character output hook (lo)
CSWH @ $37 ;character output hook (hi)
KSWL @ $38 ;character input hook (lo)
KSWH @ $39 ;character input hook (hi)
PCL @ $3A ;program counter save
PCH @ $3B ;program counter save
A1L @ $3C ;general purpose
A1H @ $3D ;general purpose
A2L @ $3E ;general purpose
A2H @ $3F ;general purpose
SPDBYT @ $F1 ;text output speed limiter
BRKV @ $03F0 ;address of BRK handler
SOFTEVEC @ $03F2 ;address of RESET handler
PWREDUP @ $03F4 ;power-up RESET checksum
USRADDR @ $03F8 ;jump to function that handles monitor Ctrl-Y
NMIVEC @ $03FB ;jump to function that handles NMI
IRQADDR @ $03FE ;address of IRQ handler
PLOT @ $F800 ;lo-res plot at X=Y-reg, Y=Acc
PLOT1 @ $F80E ;lo-res plot at X=Y-reg, Y per GBASL/H
HLINE @ $F819 ;lo-res horiz line at Y=Acc with X from $2c
VLINE @ $F828 ;lo-res vert line at X=Y-reg and Y from Acc to $2b
CLRSCR @ $F832 ;clear lo-res screen to black
CLRTOP @ $F836 ;clear top part of lo-res screen to black
GBASCALC @ $F847 ;compute gfx base addr for line in Acc
NXTCOL @ $F85F ;change lo-res color to (color)+3
SETCOL @ $F864 ;set lo-res color to Acc
SCRN @ $F871 ;load Acc with lo-res value at Y=Acc, X=X-reg
INSDS1_2 @ $F88C
INSDS2 @ $F88E
GET816LEN @ $F890
INSTDSP @ $F8D0 ;monitor/mini-asm display
PRNTYX @ $F940 ;print Y-reg/X-reg as 4 hex digits
PRNTAX @ $F941 ;print Acc/X-reg as 4 hex digits
PRNTX @ $F944 ;print X-reg as 2 hex digits
PRBLNK @ $F948 ;print 3 spaces
PRBL2 @ $F94A
PCADJ @ $F953 ;monitor/mini-asm PC adjust
TEXT2COPY @ $F962
OLDIRQ @ $FA40 ;autostart ROM IRQ handler
BREAK @ $FA4C
OLDBRK @ $FA59
RESET @ $FA62
PWRUP @ $FAA6
SLOOP @ $FABA
REGDSP @ $FAD7 ;display register contents
RTBL @ $FB19
PREAD @ $FB1E ;read paddle specifed by X-reg, return in Y-reg
PREAD4 @ $FB21
INIT @ $FB2F ;screen initialization
SETTXT @ $FB39 ;set screen to text mode
SETGR @ $FB40 ;set screen to graphics mode
SETWND @ $FB4B ;set normal low-res graphics window
SETWND2 @ $FB51
TABV @ $FB5B ;place cursor at line (A-reg) and column (ch)
APPLEII @ $FB60 ;clear screen and put "Apple II" into first line
SETPWRC @ $FB6F
VIDWAIT @ $FB78
KBDWAIT @ $FB88
VERSION @ $FBB3
ZIDBYTE2 @ $FBBF
ZIDBYTE @ $FBC0
BASCALC @ $FBC1 ;calculate text base address
BELL1 @ $FBDD ;sound bell regardless of output device
BELL1_2 @ $FBE2
BELL2 @ $FBE4 ;sound bell
STORADV @ $FBF0
ADVANCE @ $FBF4 ;move cursor right
VIDOUT @ $FBFD ;output Acc as text
BS @ $FC10 ;move cursor left
UP @ $FC1A ;move cursor up
VTAB @ $FC22 ;tab to row specified in Acc
VTABZ @ $FC24
CLREOP @ $FC42 ;clear screen from cursor to end of page
HOME @ $FC58 ;clear screen and reset text output to top-left
CR @ $FC62 ;perform a carriage return
LF @ $FC66 ;perform a line feed
SCROLL @ $FC70 ;scroll up 1 line
CLREOL @ $FC9C ;clear to end of line
CLREOLZ @ $FC9E
WAIT @ $FCA8 ;delay for (26 + 27*Acc + 5*(Acc*Acc))/2 cycles
NXTA4 @ $FCB4 ;increment A4
NXTA1 @ $FCBA ;increment A1
HEADR @ $FCC9 ;write cassette sync
WRTAPE @ $FCE5 ;casssette write
RDKEY @ $FD0C ;read key
FD10 @ $FD10
RDKEY1 @ $FD18
KEYIN @ $FD1B ;get next key input from keyboard hardware
RDCHAR @ $FD35 ;calls RDKEY to get next char
GETLNZ @ $FD67 ;get a line of input
GETLN @ $FD6A ;get a lint of input
GETLN0 @ $FD6C
GETLN1 @ $FD6F
CROUT1 @ $FD8B
CROUT @ $FD8E ;print a carriage return
PRA1 @ $FD92 ;print CR, then hex of A1H/A1L, then minus sign
PRBYTE @ $FDDA ;print Acc as two-digit hex number
PRHEX @ $FDE3 ;print right nibble of Acc as single hex digit
COUT @ $FDED ;print Acc to output device
COUT1 @ $FDF0
COUTZ @ $FDF6
IDROUTINE @ $FE1F
MOVE @ $FE2C ;memory move A1/A2 to A4
LIST @ $FE5E ;disassemble 20 instructions (not on GS)
SETINV @ $FE80 ;set video mode to inverse
SETNORM @ $FE84 ;set video mode to normal
SETKBD @ $FE89 ;reset char input handler to ROM
INPORT @ $FE8B
SETVID @ $FE93 ;reset char output handler to ROM
OUTPORT @ $FE95
GO @ $FEB6
WRITE @ $FECD ;write data to cassette
READ @ $FEFD ;read data from cassette
PRERR @ $FF2D ;print "ERR" and sound bell
BELL @ $FF3A ;sound bell
RESTORE @ $FF3F ;restore 6502 registers from $45-48
SAVE @ $FF4A ;save 6502 registers to $45-49
IORTS @ $FF58 ;JSR here to find out where one is
OLDRST @ $FF59 ;RESET entry point
MON @ $FF65 ;normal entry to monitor
MONZ @ $FF69 ;reset and enter monitor
MONZ2 @ $FF6C
MONZ4 @ $FF70
DIG @ $FF8A
GETNUM @ $FFA7
NXTCHR @ $FFAD ;part of GETLN input loop
TOSUB @ $FFBE
ZMODE @ $FFC7