diff --git a/asminc/cpu.mac b/asminc/cpu.mac index 15b16bad5..092519173 100644 --- a/asminc/cpu.mac +++ b/asminc/cpu.mac @@ -1,38 +1,4 @@ -; CPU bitmask constants (make sure this matches src/common/cpu.h) - -CPU_ISET_NONE = $0001 -CPU_ISET_6502 = $0002 -CPU_ISET_6502X = $0004 -CPU_ISET_6502DTV = $0008 -CPU_ISET_65SC02 = $0010 -CPU_ISET_65C02 = $0020 ; Rockwell extensions -CPU_ISET_65816 = $0040 -CPU_ISET_SWEET16 = $0080 -CPU_ISET_HUC6280 = $0100 -CPU_ISET_M740 = $0200 -CPU_ISET_4510 = $0400 -CPU_ISET_45GS02 = $0800 -CPU_ISET_W65C02 = $1000 ; WDC extensions -CPU_ISET_65CE02 = $2000 ; CSG extensions - -; CPU capabilities -; make sure to only combine the instruction sets that are 100% compatible -CPU_NONE = CPU_ISET_NONE -CPU_6502 = CPU_ISET_6502 -CPU_6502X = CPU_ISET_6502X | CPU_ISET_6502 -CPU_6502DTV = CPU_ISET_6502DTV | CPU_ISET_6502 -CPU_65SC02 = CPU_ISET_65SC02 | CPU_ISET_6502 -CPU_65C02 = CPU_ISET_65C02 | CPU_ISET_6502 | CPU_ISET_65SC02 -CPU_W65C02 = CPU_ISET_W65C02 | CPU_ISET_6502 | CPU_ISET_65SC02 | CPU_ISET_65C02 - -; FIXME: CPU_ISET_65SC02 does not apply to the following, because the zp-indirect -; addressing was replaced with zp-indirect,z-indexed in 652SCE02 - -CPU_HUC6280 = CPU_ISET_HUC6280 | CPU_ISET_6502 | CPU_ISET_65C02 -CPU_4510 = CPU_ISET_4510 | CPU_ISET_6502 | CPU_ISET_65C02 | CPU_ISET_65CE02 -CPU_45GS02 = CPU_ISET_45GS02 | CPU_ISET_6502 | CPU_ISET_65C02 | CPU_ISET_65CE02 | CPU_ISET_4510 -CPU_M740 = CPU_ISET_M740 | CPU_ISET_6502 -CPU_65CE02 = CPU_ISET_65CE02 | CPU_ISET_6502 | CPU_ISET_65C02 - -CPU_65816 = CPU_ISET_65816 | CPU_ISET_6502 | CPU_ISET_65SC02 -CPU_SWEET16 = CPU_ISET_SWEET16 +; This file is no longer needed as the symbols that were defined here are now +; internal symbols generated by the assembler. It is kept to avoid breaking +; old sources. +.warning "'.macpack cpu' is no longer required" diff --git a/doc/ca65.sgml b/doc/ca65.sgml index cfe73a2f0..0f996ff64 100644 --- a/doc/ca65.sgml +++ b/doc/ca65.sgml @@ -1401,16 +1401,76 @@ writable. Reading this pseudo variable will give a constant integer value that tells which CPU is currently enabled. It can also tell which instruction set the CPU is able to translate. The value read from the pseudo variable - should be further examined by using one of the constants defined by the - "cpu" macro package (see /). + should be further examined by using one of the following constants: - It may be used to replace the .IFPxx pseudo instructions or to construct - even more complex expressions. + + CPU_6502 + CPU_65SC02 + CPU_65C02 + CPU_65816 + CPU_SWEET16 + CPU_HUC6280 + CPU_4510 + CPU_45GS02 + CPU_6502DTV + CPU_M740 + + +Above constants may be used to determine the exact type of the currently +enabled CPU. In addition to that, for each CPU instruction set, another +constant is defined: + + + CPU_ISET_6502 + CPU_ISET_65SC02 + CPU_ISET_65C02 + CPU_ISET_65816 + CPU_ISET_SWEET16 + CPU_ISET_HUC6280 + CPU_ISET_4510 + CPU_ISET_45GS02 + CPU_ISET_6502DTV + CPU_ISET_M740 + + + + + - .macpack cpu .if (.cpu .bitand CPU_ISET_65816) phx phy @@ -1422,7 +1482,6 @@ writable. .endif - See also: @@ -5042,69 +5101,6 @@ This macro package defines a macro named .MACPACK cpu

- -This macro package does not define any macros but constants used to examine -the value read from the / pseudo variable. For -each supported CPU a constant similar to - - - CPU_6502 - CPU_65SC02 - CPU_65C02 - CPU_65816 - CPU_SWEET16 - CPU_HUC6280 - CPU_4510 - CPU_45GS02 - CPU_6502DTV - CPU_M740 - - -is defined. These constants may be used to determine the exact type of the -currently enabled CPU. In addition to that, for each CPU instruction set, -another constant is defined: - - - CPU_ISET_6502 - CPU_ISET_65SC02 - CPU_ISET_65C02 - CPU_ISET_65816 - CPU_ISET_SWEET16 - CPU_ISET_HUC6280 - CPU_ISET_4510 - CPU_ISET_45GS02 - CPU_ISET_6502DTV - CPU_ISET_M740 - - -The value read from the / pseudo variable may -be checked with / to determine if the -currently enabled CPU supports a specific instruction set. For example the -65C02 supports all instructions of the 65SC02 CPU, so it has the - - .if (.cpu .bitand CPU_ISET_65SC02) - lda (c_sp) - .else - ldy #$00 - lda (c_sp),y - .endif - - -it is possible to determine if the - - - lda (c_sp) - - -instruction is supported, which is the case for the 65SC02, 65C02 and 65816 -CPUs (the latter two are upwards compatible to the 65SC02). - -see section and following. - .MACPACK module

This macro package defines a macro named