From c1056839b1475d50aa4d82a4cf4d825228f22565 Mon Sep 17 00:00:00 2001 From: Andy McFadden Date: Mon, 16 Sep 2019 16:58:32 -0700 Subject: [PATCH] Changed naming convention in Applesoft/F8-ROM symbol files I was using the plain names, but when you've got symbols like READ and WAIT it's too easy to have a conflict and it's not plainly obvious where something came from. Now all monitor symbols begin with MON_, and Applesoft symbols begin with BAS_. The Amper-fdraw example ended up with a few broken symbol refs, because it was created before project/platform symbols followed the "nearby" rules, and was explicitly naming LINNUM and AMPERV. I switched the operands to default, and they now auto-format correctly. I added a few more entries to Applesoft while I was at it. --- .../A2-Amper-fdraw/AMPERFDRAW#061d60.dis65 | 17 +- SourceGen/RuntimeData/Apple/Applesoft.sym65 | 293 +++++++++--------- SourceGen/RuntimeData/Apple/F8-ROM.sym65 | 280 ++++++++--------- SourceGen/WpfGui/EditLongComment.xaml | 2 +- 4 files changed, 294 insertions(+), 298 deletions(-) diff --git a/SourceGen/Examples/A2-Amper-fdraw/AMPERFDRAW#061d60.dis65 b/SourceGen/Examples/A2-Amper-fdraw/AMPERFDRAW#061d60.dis65 index 957678e..0645c62 100644 --- a/SourceGen/Examples/A2-Amper-fdraw/AMPERFDRAW#061d60.dis65 +++ b/SourceGen/Examples/A2-Amper-fdraw/AMPERFDRAW#061d60.dis65 @@ -1,7 +1,7 @@ ### 6502bench SourceGen dis65 v1.0 ### { "_ContentVersion":1,"FileDataLength":661,"FileDataCrc32":2075163852,"ProjectProps":{ -"CpuName":"6502","IncludeUndocumentedInstr":false,"EntryFlags":32702671,"AnalysisParams":{ +"CpuName":"6502","IncludeUndocumentedInstr":false,"EntryFlags":32702671,"AutoLabelStyle":"Simple","AnalysisParams":{ "AnalyzeUncategorizedData":true,"MinCharsForString":4,"SeekNearbyTargets":true}, "PlatformSymbolFileIdentifiers":["RT:Apple/F8-ROM.sym65","RT:Apple/Cxxx-IO.sym65","RT:Apple/Applesoft.sym65","PROJ:fdraw-exports.sym65"],"ExtensionScriptFileIdentifiers":[],"ProjectSyms":{ }}, @@ -235,15 +235,9 @@ "5":{ "Length":2,"Format":"NumericLE","SubFormat":"Symbol","SymbolRef":{ "Label":"dispatch","Part":"Low"}}, -"7":{ -"Length":3,"Format":"NumericLE","SubFormat":"Symbol","SymbolRef":{ -"Label":"AMPERV","Part":"Low"}}, "10":{ "Length":2,"Format":"NumericLE","SubFormat":"Symbol","SymbolRef":{ "Label":"dispatch","Part":"High"}}, -"12":{ -"Length":3,"Format":"NumericLE","SubFormat":"Symbol","SymbolRef":{ -"Label":"AMPERV","Part":"Low"}}, "40":{ "Length":1,"Format":"NumericLE","SubFormat":"Symbol","SymbolRef":{ "Label":"TOK_NEW","Part":"Low"}}, @@ -394,20 +388,11 @@ "363":{ "Length":2,"Format":"NumericLE","SubFormat":"Symbol","SymbolRef":{ "Label":"TOK_TO","Part":"Low"}}, -"473":{ -"Length":2,"Format":"NumericLE","SubFormat":"Symbol","SymbolRef":{ -"Label":"LINNUM","Part":"Low"}}, "492":{ "Length":2,"Format":"NumericLE","SubFormat":"Decimal","SymbolRef":null}, "512":{ "Length":2,"Format":"NumericLE","SubFormat":"Symbol","SymbolRef":{ "Label":"TOK_AT","Part":"Low"}}, -"522":{ -"Length":2,"Format":"NumericLE","SubFormat":"Symbol","SymbolRef":{ -"Label":"LINNUM","Part":"Low"}}, -"529":{ -"Length":2,"Format":"NumericLE","SubFormat":"Symbol","SymbolRef":{ -"Label":"LINNUM","Part":"Low"}}, "582":{ "Length":2,"Format":"NumericLE","SubFormat":"Decimal","SymbolRef":null}, "586":{ diff --git a/SourceGen/RuntimeData/Apple/Applesoft.sym65 b/SourceGen/RuntimeData/Apple/Applesoft.sym65 index b5cee6a..732499e 100644 --- a/SourceGen/RuntimeData/Apple/Applesoft.sym65 +++ b/SourceGen/RuntimeData/Apple/Applesoft.sym65 @@ -6,159 +6,170 @@ *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 +BAS_USRVEC @ $0A ;USR() command vector +BAS_HCOLOR1 @ $1C ;hi-res color mask +BAS_COUNTH @ $1D ;hi-res high-order byte of step for line +BAS_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 +BAS_RNDL @ $4E ;low byte of KEYIN "random" value +BAS_RNDH @ $4F ;high byte of KEYIN "random" value +BAS_LINNUM @ $50 ;line number (2b) +BAS_TEMPPT @ $52 ;temporary point (2b) +BAS_INDEX @ $5E ;temp (stack) pointer for moving strings (2b) +BAS_TEXTTAB @ $67 ;pointer to start of Applesoft program (2b) +BAS_VARTAB @ $69 ;pointer to start of Applesoft variables (2b) +BAS_ARYTAB @ $6B ;pointer to start of Applesoft array space (2b) +BAS_STREND @ $6D ;pointer to end of numeric storage (2b) +BAS_FRETOP @ $6F ;pointer to end of string storage (2b) +BAS_MEMSIZE @ $73 ;HIMEM (2b) +BAS_CURLIN @ $75 ;current line number (2b) +BAS_OLDTEXT @ $79 ;old text pointer +BAS_FORPNT @ $85 ;general pointer (2b) +BAS_TEMP1 @ $93 ;fp register TEMP1 +BAS_HIGHDS @ $94 ;block copy pointer (2b) +BAS_HIGHTR @ $96 ;block copy pointer (2b) +BAS_LOWTR @ $9B ;general pointer +BAS_FAC @ $9D ;floating point accumulator (6b) +BAS_FACMO @ $A0 ;middle-order byte of mantissa of FAC +BAS_FACLO @ $A1 ;low-order byte of mantissa of FAC +BAS_FACSIGN @ $A2 ;single byte sign of FAC +BAS_STRING1 @ $AB ;pointer to a string +BAS_STRING2 @ $AD ;pointer to a string +BAS_PRGEND @ $AF ;pointer to end of program (2b) +BAS_CHRGET @ $B1 ;get next character or Applesoft token +BAS_CHRGOT @ $B7 ;get next, but don't advance TXTPTR +BAS_TXTPTR @ $B8 ;points at next char or token -AUTORUN @ $D6 ;set to $80 to auto-run -ERRFLG @ $D8 ;$80 if onerr active +BAS_AUTORUN @ $D6 ;set to $80 to auto-run +BAS_ERRFLG @ $D8 ;$80 if onerr active -HPAG @ $E6 ;hi-res page to draw on ($20 or $40) -SCALE @ $E7 ;hi-res graphics scale factor +BAS_HPAG @ $E6 ;hi-res page to draw on ($20 or $40) +BAS_SCALE @ $E7 ;hi-res graphics scale factor -AMPERV @ $03F5 ;JMP to function that handles Applesoft '&' cmds +BAS_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 +BAS_ERROR @ $D412 ;print error based on X-reg +BAS_FRMNUM @ $DD67 ;evalute expression at TXTPTR, result into FAC +BAS_SYN_ERROR @ $DEC9 ;throw SYNTAX ERROR +BAS_CHKCOM @ $DEBE ;checks TXTPTR for comma +BAS_ILLQ_ERROR @ $E199 ;throw ILLEGAL QUANTITY ERROR +BAS_GETADR @ $E752 ;convert FAC to 2-byte integer in LINNUM +BAS_GETBYT @ $E6F8 ;gets byte, in X/FACLO +BAS_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 +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 diff --git a/SourceGen/RuntimeData/Apple/F8-ROM.sym65 b/SourceGen/RuntimeData/Apple/F8-ROM.sym65 index e2e992b..c684bf6 100644 --- a/SourceGen/RuntimeData/Apple/F8-ROM.sym65 +++ b/SourceGen/RuntimeData/Apple/F8-ROM.sym65 @@ -7,146 +7,146 @@ *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 +MON_WNDLEFT @ $20 ;left column of scroll window +MON_WNDWDTH @ $21 ;width of scroll window +MON_WNDTOP @ $22 ;top of scroll window +MON_WNDBTM @ $23 ;bottom of scsroll window +MON_CH @ $24 ;cursor horizontal displacement +MON_CV @ $25 ;cursor vertical displacement +MON_GBASL @ $26 ;base address for lo-res drawing (lo) +MON_GBASH @ $27 ;base address for lo-res drawing (hi) +MON_H2 @ $2C ;right end of horizontal line drawn by HLINE +MON_V2 @ $2D ;bottom of vertical line drawn by VLINE +MON_INVFLAG @ $32 ;text mask (255=normal, 127=flash, 63=inv) +MON_PROMPT @ $33 ;prompt character +MON_CSWL @ $36 ;character output hook (lo) +MON_CSWH @ $37 ;character output hook (hi) +MON_KSWL @ $38 ;character input hook (lo) +MON_KSWH @ $39 ;character input hook (hi) +MON_PCL @ $3A ;program counter save +MON_PCH @ $3B ;program counter save +MON_A1L @ $3C ;general purpose +MON_A1H @ $3D ;general purpose +MON_A2L @ $3E ;general purpose +MON_A2H @ $3F ;general purpose -SPDBYT @ $F1 ;text output speed limiter +MON_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 +MON_BRKV @ $03F0 ;address of BRK handler +MON_SOFTEVEC @ $03F2 ;address of RESET handler +MON_PWREDUP @ $03F4 ;power-up RESET checksum +MON_USRADDR @ $03F8 ;jump to function that handles monitor Ctrl-Y +MON_NMIVEC @ $03FB ;jump to function that handles NMI +MON_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 +MON_PLOT @ $F800 ;lo-res plot at X=Y-reg, Y=Acc +MON_PLOT1 @ $F80E ;lo-res plot at X=Y-reg, Y per GBASL/H +MON_HLINE @ $F819 ;lo-res horiz line at Y=Acc with X from $2c +MON_VLINE @ $F828 ;lo-res vert line at X=Y-reg and Y from Acc to $2b +MON_CLRSCR @ $F832 ;clear lo-res screen to black +MON_CLRTOP @ $F836 ;clear top part of lo-res screen to black +MON_GBASCALC @ $F847 ;compute gfx base addr for line in Acc +MON_NXTCOL @ $F85F ;change lo-res color to (color)+3 +MON_SETCOL @ $F864 ;set lo-res color to Acc +MON_SCRN @ $F871 ;load Acc with lo-res value at Y=Acc, X=X-reg +MON_INSDS1_2 @ $F88C +MON_INSDS2 @ $F88E +MON_GET816LEN @ $F890 +MON_INSTDSP @ $F8D0 ;monitor/mini-asm display +MON_PRNTYX @ $F940 ;print Y-reg/X-reg as 4 hex digits +MON_PRNTAX @ $F941 ;print Acc/X-reg as 4 hex digits +MON_PRNTX @ $F944 ;print X-reg as 2 hex digits +MON_PRBLNK @ $F948 ;print 3 spaces +MON_PRBL2 @ $F94A +MON_PCADJ @ $F953 ;monitor/mini-asm PC adjust +MON_TEXT2COPY @ $F962 +MON_OLDIRQ @ $FA40 ;autostart ROM IRQ handler +MON_BREAK @ $FA4C +MON_OLDBRK @ $FA59 +MON_RESET @ $FA62 +MON_PWRUP @ $FAA6 +MON_SLOOP @ $FABA +MON_REGDSP @ $FAD7 ;display register contents +MON_RTBL @ $FB19 +MON_PREAD @ $FB1E ;read paddle specifed by X-reg, return in Y-reg +MON_PREAD4 @ $FB21 +MON_INIT @ $FB2F ;screen initialization +MON_SETTXT @ $FB39 ;set screen to text mode +MON_SETGR @ $FB40 ;set screen to graphics mode +MON_SETWND @ $FB4B ;set normal low-res graphics window +MON_SETWND2 @ $FB51 +MON_TABV @ $FB5B ;place cursor at line (A-reg) and column (ch) +MON_APPLEII @ $FB60 ;clear screen and put "Apple II" into first line +MON_SETPWRC @ $FB6F +MON_VIDWAIT @ $FB78 +MON_KBDWAIT @ $FB88 +MON_VERSION @ $FBB3 +MON_ZIDBYTE2 @ $FBBF +MON_ZIDBYTE @ $FBC0 +MON_BASCALC @ $FBC1 ;calculate text base address +MON_BELL1 @ $FBDD ;sound bell regardless of output device +MON_BELL1_2 @ $FBE2 +MON_BELL2 @ $FBE4 ;sound bell +MON_STORADV @ $FBF0 +MON_ADVANCE @ $FBF4 ;move cursor right +MON_VIDOUT @ $FBFD ;output Acc as text +MON_BS @ $FC10 ;move cursor left +MON_UP @ $FC1A ;move cursor up +MON_VTAB @ $FC22 ;tab to row specified in Acc +MON_VTABZ @ $FC24 +MON_CLREOP @ $FC42 ;clear screen from cursor to end of page +MON_HOME @ $FC58 ;clear screen and reset text output to top-left +MON_CR @ $FC62 ;perform a carriage return +MON_LF @ $FC66 ;perform a line feed +MON_SCROLL @ $FC70 ;scroll up 1 line +MON_CLREOL @ $FC9C ;clear to end of line +MON_CLREOLZ @ $FC9E +MON_WAIT @ $FCA8 ;delay for (26 + 27*Acc + 5*(Acc*Acc))/2 cycles +MON_NXTA4 @ $FCB4 ;increment A4 +MON_NXTA1 @ $FCBA ;increment A1 +MON_HEADR @ $FCC9 ;write cassette sync +MON_WRTAPE @ $FCE5 ;casssette write +MON_RDKEY @ $FD0C ;read key +MON_FD10 @ $FD10 +MON_RDKEY1 @ $FD18 +MON_KEYIN @ $FD1B ;get next key input from keyboard hardware +MON_RDCHAR @ $FD35 ;calls RDKEY to get next char +MON_GETLNZ @ $FD67 ;get a line of input +MON_GETLN @ $FD6A ;get a line of input +MON_GETLN0 @ $FD6C +MON_GETLN1 @ $FD6F +MON_CROUT1 @ $FD8B +MON_CROUT @ $FD8E ;print a carriage return +MON_PRA1 @ $FD92 ;print CR, then hex of A1H/A1L, then minus sign +MON_PRBYTE @ $FDDA ;print Acc as two-digit hex number +MON_PRHEX @ $FDE3 ;print right nibble of Acc as single hex digit +MON_COUT @ $FDED ;print Acc to output device +MON_COUT1 @ $FDF0 +MON_COUTZ @ $FDF6 +MON_IDROUTINE @ $FE1F +MON_MOVE @ $FE2C ;memory move A1/A2 to A4 +MON_LIST @ $FE5E ;disassemble 20 instructions (not on GS) +MON_SETINV @ $FE80 ;set video mode to inverse +MON_SETNORM @ $FE84 ;set video mode to normal +MON_SETKBD @ $FE89 ;reset char input handler to ROM +MON_INPORT @ $FE8B +MON_SETVID @ $FE93 ;reset char output handler to ROM +MON_OUTPORT @ $FE95 +MON_GO @ $FEB6 +MON_WRITE @ $FECD ;write data to cassette +MON_READ @ $FEFD ;read data from cassette +MON_PRERR @ $FF2D ;print "ERR" and sound bell +MON_BELL @ $FF3A ;sound bell +MON_RESTORE @ $FF3F ;restore 6502 registers from $45-48 +MON_SAVE @ $FF4A ;save 6502 registers to $45-49 +MON_IORTS @ $FF58 ;JSR here to find out where one is +MON_OLDRST @ $FF59 ;RESET entry point +MON_MON @ $FF65 ;normal entry to monitor +MON_MONZ @ $FF69 ;reset and enter monitor +MON_MONZ2 @ $FF6C +MON_MONZ4 @ $FF70 +MON_DIG @ $FF8A +MON_GETNUM @ $FFA7 +MON_NXTCHR @ $FFAD ;part of GETLN input loop +MON_TOSUB @ $FFBE +MON_ZMODE @ $FFC7 diff --git a/SourceGen/WpfGui/EditLongComment.xaml b/SourceGen/WpfGui/EditLongComment.xaml index be1943d..089b59d 100644 --- a/SourceGen/WpfGui/EditLongComment.xaml +++ b/SourceGen/WpfGui/EditLongComment.xaml @@ -60,7 +60,7 @@ limitations under the License. - +