1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-12-11 13:50:13 +00:00
6502bench/SourceGen/RuntimeData/Apple/F8-ROM-nozp.sym65

50 lines
1.3 KiB
Plaintext
Raw Normal View History

Add ability to "erase" previously-defined platform symbols While disassembling some code I found that I wanted the ROM entry points, but the zero page usage was significantly different and the ROM labels were distracting. Splitting the symbol file in two was a possibility, but I'm afraid this will lead to a very large collection of very small files, and we'll lose any sense of relation between the ROM entry points and the ZP addresses used to pass arguments. Platform symbols have the lowest priority when resolving by address, but using that to hide the unwanted labels requires creating project symbols or local variables for things that you might not know what they do yet. It's possible to hide a platform symbol by adding another symbol with the same label and an invalid value. This change formalizes and extends the "hiding" of platform symbols to full erasure, so that they don't clutter up the symbol table. This also tightens up the platform symbol parser to only accept values in the range 0 <= value <= 0x00ffffff (24-bit positive integers). An "F8-ROM-nozp" symbol file is now part of the standard set. A project can include that to erase the zero-page definitions. (I'm not entirely convinced this is the right approach, so I'm not doing this treatment on other symbol files... consider this an experiment. Another approach would be some sort of conditional inclusion, or perhaps erase-by-tag, but that requires some UI work in the app to define what you want included or excluded.)
2019-10-27 17:54:42 +00:00
; Copyright 2019 faddenSoft. All Rights Reserved.
; See the LICENSE.txt file for distribution terms (Apache 2.0).
;
; Sometimes code uses the ROM entry points but redefines the zero-page
; addresses for its own purposes. Having the MON_* symbols is distracting.
; This erases them from the symbol table.
;
; To use: include this file, and ensure it comes after F8-ROM.sym65 in
; the platform symbol file list.
;
*SYNOPSIS Remove monitor ROM zero-page symbols
MON_WNDLEFT @ erase
MON_WNDWDTH @ erase
MON_WNDTOP @ erase
MON_WNDBTM @ erase
MON_CH @ erase
MON_CV @ erase
MON_GBASL @ erase
MON_GBASH @ erase
MON_BASL @ erase
MON_BASH @ erase
;MON_BAS2L @ erase
;MON_BAS2H @ erase
Add ability to "erase" previously-defined platform symbols While disassembling some code I found that I wanted the ROM entry points, but the zero page usage was significantly different and the ROM labels were distracting. Splitting the symbol file in two was a possibility, but I'm afraid this will lead to a very large collection of very small files, and we'll lose any sense of relation between the ROM entry points and the ZP addresses used to pass arguments. Platform symbols have the lowest priority when resolving by address, but using that to hide the unwanted labels requires creating project symbols or local variables for things that you might not know what they do yet. It's possible to hide a platform symbol by adding another symbol with the same label and an invalid value. This change formalizes and extends the "hiding" of platform symbols to full erasure, so that they don't clutter up the symbol table. This also tightens up the platform symbol parser to only accept values in the range 0 <= value <= 0x00ffffff (24-bit positive integers). An "F8-ROM-nozp" symbol file is now part of the standard set. A project can include that to erase the zero-page definitions. (I'm not entirely convinced this is the right approach, so I'm not doing this treatment on other symbol files... consider this an experiment. Another approach would be some sort of conditional inclusion, or perhaps erase-by-tag, but that requires some UI work in the app to define what you want included or excluded.)
2019-10-27 17:54:42 +00:00
MON_H2 @ erase
MON_V2 @ erase
MON_COLOR @ erase
MON_INVFLAG @ erase
MON_PROMPT @ erase
MON_CSWL @ erase
MON_CSWH @ erase
MON_KSWL @ erase
MON_KSWH @ erase
MON_PCL @ erase
MON_PCH @ erase
MON_A1L @ erase
MON_A1H @ erase
MON_A2L @ erase
MON_A2H @ erase
MON_A3L @ erase
MON_A3H @ erase
MON_A4L @ erase
MON_A4H @ erase
MON_A5L @ erase
MON_A5H @ erase
MON_RNDL @ erase
MON_RNDH @ erase