Some checks failed
Cargo Build & Test / Rust project - latest (stable) (push) Failing after 38s
76 lines
3.0 KiB
PHP
76 lines
3.0 KiB
PHP
|
|
; *******************************************************************************
|
|
; ** **
|
|
; ** sim65.inc : assembler definitions for the sim6502 and sim65c02 targets. **
|
|
; ** **
|
|
; ** Sidney Cadot, January 2025 **
|
|
; ** **
|
|
; *******************************************************************************
|
|
|
|
; The '_peripherals' symbol is defined in the linker configuration
|
|
; file to correspond to the first address in the periperal memory
|
|
; aparture.
|
|
;
|
|
; We use it here as a base address for all peripheral addresses.
|
|
|
|
.import _peripherals
|
|
|
|
; **************************************************************
|
|
; ** **
|
|
; ** Define assembler symbols for the "counter" peripheral. **
|
|
; ** **
|
|
; **************************************************************
|
|
|
|
peripheral_counter_base := _peripherals + 0
|
|
|
|
peripheral_counter_latch := peripheral_counter_base + 0
|
|
peripheral_counter_select := peripheral_counter_base + 1
|
|
peripheral_counter_value := peripheral_counter_base + 2
|
|
|
|
; Values for the peripheral_counter_select register.
|
|
|
|
COUNTER_SELECT_CLOCKCYCLE_COUNTER = $00
|
|
COUNTER_SELECT_INSTRUCTION_COUNTER = $01
|
|
COUNTER_SELECT_IRQ_COUNTER = $02
|
|
COUNTER_SELECT_NMI_COUNTER = $03
|
|
COUNTER_SELECT_WALLCLOCK_TIME = $80
|
|
COUNTER_SELECT_WALLCLOCK_TIME_SPLIT = $81
|
|
|
|
; ********************************************************************
|
|
; ** **
|
|
; ** Define assembler symbols for the "sim65 control" peripheral. **
|
|
; ** **
|
|
; ********************************************************************
|
|
|
|
peripheral_sim65_base := _peripherals + 10
|
|
|
|
peripheral_sim65_cpu_mode := peripheral_sim65_base + 0
|
|
peripheral_sim65_trace_mode := peripheral_sim65_base + 1
|
|
|
|
; Values for the peripheral_sim65_cpu_mode register.
|
|
|
|
SIM65_CPU_MODE_6502 = $00
|
|
SIM65_CPU_MODE_65C02 = $01
|
|
SIM65_CPU_MODE_6502X = $02
|
|
|
|
; Bitfield values for the peripheral_sim65_trace_mode field.
|
|
|
|
SIM65_TRACE_MODE_FIELD_INSTR_COUNTER = $40
|
|
SIM65_TRACE_MODE_FIELD_CLOCK_COUNTER = $20
|
|
SIM65_TRACE_MODE_FIELD_PC = $10
|
|
SIM65_TRACE_MODE_FIELD_INSTR_BYTES = $08
|
|
SIM65_TRACE_MODE_FIELD_INSTR_ASSEMBLY = $04
|
|
SIM65_TRACE_MODE_FIELD_CPU_REGISTERS = $02
|
|
SIM65_TRACE_MODE_FIELD_CC65_SP = $01
|
|
|
|
; Values for the peripheral_sim65_trace_mode field that fully disable / enable tracing.
|
|
|
|
SIM65_TRACE_MODE_DISABLE = $00
|
|
SIM65_TRACE_MODE_ENABLE_FULL = $7F
|
|
|
|
; ************************
|
|
; ** **
|
|
; ** End of sim65.inc **
|
|
; ** **
|
|
; ************************
|