Skip to content

Instantly share code, notes, and snippets.

@jedie
Last active December 24, 2015 09:49
Show Gist options
  • Save jedie/6779646 to your computer and use it in GitHub Desktop.
Save jedie/6779646 to your computer and use it in GitHub Desktop.
DragonPy - Dragon 32 emulator in Python None
-------------------------------------------------------------------------------
set log level to: 5
/home/jens/workspace/DragonPy/cpu6809.py --verbosity=5
Verbosity log level: Level 5
logfile log level: INFO
DragonPy_CLI.py --verbosity=5
Verbosity log level: Level 5
logfile log level: INFO
cpu6809.py --bus 42823 --rom d32.rom --verbosity=5
Verbosity log level: Level 5
logfile log level: INFO
Use bus port: 42823
init 16384 Bytes ROM (0x8000 - 0xc000)
Read 16383Bytes from d32.rom into ROM 0x8000-0xbfff
init 32768 Bytes RAM (0x0 - 0x8000)
$b3b4 CPU reset:
set cc.F=1: FIRQ interrupt masked
set cc.I=1: IRQ interrupt masked
set PC to $b3b4
-------------------------------------------------------------------------------
$b3b4 read pc byte: $31 from $b3b4
$b3b4 LEAY INDEXED instruction_LEA_register | $b3b4: $b3b4-$b3b9 - RESET interrupt service routine (CoCo $a027) Loads Y with $b39b and JMPs $8000
$b3b5 read pc byte: $8c from $b3b5
$b3b6 addressing 'indexed' with postbyte: $8c == 10001100
$b3b6 read pc byte: $e4 from $b3b6
$b3b7 indexed addressing mode ea=$b39b | $b39b: $b39b-$b3b3 - Called after Hardware init routine, following a RESET Inits stack, checks for Cold/warm start. If $0071 contains 0x55 and $0072:0073 points to NOP then execution is passed to [$0072:0073] otherwise branches to $b3ba
$b3b7 get 'indexed' byte: ea = $b39b m = $10
$b39b instruction_LEA_register kwargs: ea=$b39b m=$10 opcode=$31 operand=<Y (8-Bit):0>
$b3b7 LEA Y: Set Y to $b39b | $b39b: $b39b-$b3b3 - Called after Hardware init routine, following a RESET Inits stack, checks for Cold/warm start. If $0071 contains 0x55 and $0072:0073 points to NOP then execution is passed to [$0072:0073] otherwise branches to $b3ba
-------------------------------------------------------------------------------
$b3b7 read pc byte: $7e from $b3b7
$b3b7 JMP EXTENDED instruction_JMP | $b3b7: $b3b4-$b3b9 - RESET interrupt service routine (CoCo $a027) Loads Y with $b39b and JMPs $8000
$b3b8 read pc word: $8000 from $b3b8
$b3ba addressing 'extended indirect' ea: $8000 | $8000: $8000-$8002 - Hardware Initialisation (JMP $bb40; D64 JMP $bb3c)
$b3ba get 'extended' word: ea = $8000 m = $7ebb
$8000 instruction_JMP kwargs: ea=$8000 m=$7ebb opcode=$7e
$b3ba JMP to $8000 | $8000: $8000-$8002 - Hardware Initialisation (JMP $bb40; D64 JMP $bb3c)
-------------------------------------------------------------------------------
$8000 read pc byte: $7e from $8000
$8000 JMP EXTENDED instruction_JMP | $8000: $8000-$8002 - Hardware Initialisation (JMP $bb40; D64 JMP $bb3c)
$8001 read pc word: $bb40 from $8001
$8003 addressing 'extended indirect' ea: $bb40 | $bb40: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$8003 get 'extended' word: ea = $bb40 m = $cc00
$8003 JMP to $bb40 | $bb40: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb40 read pc byte: $cc from $bb40
$bb40 LDD IMMEDIATE instruction_LD16 | $bb40: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb41 read pc word: $0034 from $bb41
$bb41 addressing 'immediate word' value: $34
$bb41 *** last op code 126 count: 1 - new op code: $cc (LDD -> instruction_LD16)
$bb43 LD16 set D to $34 | $34: $33-$34 - Ptr to next item in current DATA statement
-------------------------------------------------------------------------------
$bb43 read pc byte: $8e from $bb43
$bb43 LDX IMMEDIATE instruction_LD16 | $bb43: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb44 read pc word: $ff00 from $bb44
$bb44 addressing 'immediate word' value: $ff00
$bb44 instruction_LD16 kwargs: ea=$bb44 m=$ff00 opcode=$8e operand=<X (8-Bit):0>
$bb46 LD16 set X to $ff00 | $ff00: $ff00 - PIA 0 A side Data reg. PA7 i/p Comparator input PA6 i/p Keyboard Matrix Ent Clr Brk N/c N/c N/c N/c Shift PA5 i/p Keyboard Matrix X Y Z Up Dwn Lft Rgt Space i/p CoCo - Keyboard 8 9 : ; , - . / PA4 i/p Keyboard Matrix P Q R S T U V W i/p CoCo - Keyboard 0 1 2 3 4 5 6 7 PA3 i/p Keyboard Matrix H I J K L M N O i/p CoCo - Keyboard X Y Z Up Dwn Lft Rgt Space PA2 i/p Keyboard Matrix @ A B C D E F G i/p CoCo - Keyboard P Q R S T U V W PA1 i/p Keyboard Matrix 8 9 : ; , - . / i/p CoCo - Keyboard H I J K L M N O i/p Left Joystick Button PA0 i/p Keyboard Matrix 0 1 2 3 4 5 6 7 i/p CoCo - Keyboard @ A B C D E F G i/p Right Joystick Button
-------------------------------------------------------------------------------
$bb46 read pc byte: $a7 from $bb46
$bb46 STA INDEXED instruction_ST8 | $bb46: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb47 read pc byte: $01 from $bb47
$bb48 addressing 'indexed' with postbyte: $1 == 00000001
**** bus read $ff01
Periphery.read_byte (cycle: 0x28) from: $ff01: $ff01 - PIA 0 A side Control reg. CA1 i/p Horiz Sync Interrupt from VDG (15625Hz; CoCo 15750Hz) CA2 o/p Analogue Mux channel select line A Selects Joystick Axis (0 x-axis, 1 y-axis)
*** TODO: PIA 0 A side control register
PIA call at $ff01 pia_0_A_control returned $b3 | $ff01: $ff01 - PIA 0 A side Control reg. CA1 i/p Horiz Sync Interrupt from VDG (15625Hz; CoCo 15750Hz) CA2 o/p Analogue Mux channel select line A Selects Joystick Axis (0 x-axis, 1 y-axis)
$bb48 get 'indexed' byte: ea = $ff01 m = $b3
$ff01 instruction_ST8 kwargs: ea=$ff01 m=$b3 opcode=$a7 operand=<A (8-Bit):0>
$bb48 ST8 store value $0 from A at $ff01 | $ff01: $ff01 - PIA 0 A side Control reg. CA1 i/p Horiz Sync Interrupt from VDG (15625Hz; CoCo 15750Hz) CA2 o/p Analogue Mux channel select line A Selects Joystick Axis (0 x-axis, 1 y-axis)
**** bus write $ff01
-------------------------------------------------------------------------------
*** write to periphery at $ff01 the value $0
$bb48 read pc byte: $a7 from $bb48
*** TODO: PIA write byte $0 to $ff01 | $ff01: $ff01 - PIA 0 A side Control reg. CA1 i/p Horiz Sync Interrupt from VDG (15625Hz; CoCo 15750Hz) CA2 o/p Analogue Mux channel select line A Selects Joystick Axis (0 x-axis, 1 y-axis)
$bb48 STA INDEXED instruction_ST8 | $bb48: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb49 read pc byte: $03 from $bb49
$bb4a addressing 'indexed' with postbyte: $3 == 00000011
**** bus read $ff03
Periphery.read_byte (cycle: 0x30) from: $ff03: $ff03 - PIA 0 B side Control reg. CB1 i/p Field Sync Interrupt from VDG (50Hz; CoCo 60Hz) CB2 o/p Analogue Mux channel select line B Selects Joystick (0 right, 1 left)
*** TODO: PIA 0 B side control register
PIA call at $ff03 pia_0_B_control returned $35 | $ff03: $ff03 - PIA 0 B side Control reg. CB1 i/p Field Sync Interrupt from VDG (50Hz; CoCo 60Hz) CB2 o/p Analogue Mux channel select line B Selects Joystick (0 right, 1 left)
$bb4a get 'indexed' byte: ea = $ff03 m = $35
$bb4a ST8 store value $0 from A at $ff03 | $ff03: $ff03 - PIA 0 B side Control reg. CB1 i/p Field Sync Interrupt from VDG (50Hz; CoCo 60Hz) CB2 o/p Analogue Mux channel select line B Selects Joystick (0 right, 1 left)
**** bus write $ff03
-------------------------------------------------------------------------------
*** write to periphery at $ff03 the value $0
$bb4a read pc byte: $a7 from $bb4a
*** TODO: PIA write byte $0 to $ff03 | $ff03: $ff03 - PIA 0 B side Control reg. CB1 i/p Field Sync Interrupt from VDG (50Hz; CoCo 60Hz) CB2 o/p Analogue Mux channel select line B Selects Joystick (0 right, 1 left)
$bb4a STA INDEXED instruction_ST8 | $bb4a: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb4b read pc byte: $84 from $bb4b
$bb4c addressing 'indexed' with postbyte: $84 == 10000100
$bb4c indexed addressing mode ea=$ff00 | $ff00: $ff00 - PIA 0 A side Data reg. PA7 i/p Comparator input PA6 i/p Keyboard Matrix Ent Clr Brk N/c N/c N/c N/c Shift PA5 i/p Keyboard Matrix X Y Z Up Dwn Lft Rgt Space i/p CoCo - Keyboard 8 9 : ; , - . / PA4 i/p Keyboard Matrix P Q R S T U V W i/p CoCo - Keyboard 0 1 2 3 4 5 6 7 PA3 i/p Keyboard Matrix H I J K L M N O i/p CoCo - Keyboard X Y Z Up Dwn Lft Rgt Space PA2 i/p Keyboard Matrix @ A B C D E F G i/p CoCo - Keyboard P Q R S T U V W PA1 i/p Keyboard Matrix 8 9 : ; , - . / i/p CoCo - Keyboard H I J K L M N O i/p Left Joystick Button PA0 i/p Keyboard Matrix 0 1 2 3 4 5 6 7 i/p CoCo - Keyboard @ A B C D E F G i/p Right Joystick Button
**** bus read $ff00
Periphery.read_byte (cycle: 0x39) from: $ff00: $ff00 - PIA 0 A side Data reg. PA7 i/p Comparator input PA6 i/p Keyboard Matrix Ent Clr Brk N/c N/c N/c N/c Shift PA5 i/p Keyboard Matrix X Y Z Up Dwn Lft Rgt Space i/p CoCo - Keyboard 8 9 : ; , - . / PA4 i/p Keyboard Matrix P Q R S T U V W i/p CoCo - Keyboard 0 1 2 3 4 5 6 7 PA3 i/p Keyboard Matrix H I J K L M N O i/p CoCo - Keyboard X Y Z Up Dwn Lft Rgt Space PA2 i/p Keyboard Matrix @ A B C D E F G i/p CoCo - Keyboard P Q R S T U V W PA1 i/p Keyboard Matrix 8 9 : ; , - . / i/p CoCo - Keyboard H I J K L M N O i/p Left Joystick Button PA0 i/p Keyboard Matrix 0 1 2 3 4 5 6 7 i/p CoCo - Keyboard @ A B C D E F G i/p Right Joystick Button
*** TODO: PIA 0 A side data register
PIA call at $ff00 pia_0_A_data returned $0 | $ff00: $ff00 - PIA 0 A side Data reg. PA7 i/p Comparator input PA6 i/p Keyboard Matrix Ent Clr Brk N/c N/c N/c N/c Shift PA5 i/p Keyboard Matrix X Y Z Up Dwn Lft Rgt Space i/p CoCo - Keyboard 8 9 : ; , - . / PA4 i/p Keyboard Matrix P Q R S T U V W i/p CoCo - Keyboard 0 1 2 3 4 5 6 7 PA3 i/p Keyboard Matrix H I J K L M N O i/p CoCo - Keyboard X Y Z Up Dwn Lft Rgt Space PA2 i/p Keyboard Matrix @ A B C D E F G i/p CoCo - Keyboard P Q R S T U V W PA1 i/p Keyboard Matrix 8 9 : ; , - . / i/p CoCo - Keyboard H I J K L M N O i/p Left Joystick Button PA0 i/p Keyboard Matrix 0 1 2 3 4 5 6 7 i/p CoCo - Keyboard @ A B C D E F G i/p Right Joystick Button
$bb4c get 'indexed' byte: ea = $ff00 m = $0
$bb4c ST8 store value $0 from A at $ff00 | $ff00: $ff00 - PIA 0 A side Data reg. PA7 i/p Comparator input PA6 i/p Keyboard Matrix Ent Clr Brk N/c N/c N/c N/c Shift PA5 i/p Keyboard Matrix X Y Z Up Dwn Lft Rgt Space i/p CoCo - Keyboard 8 9 : ; , - . / PA4 i/p Keyboard Matrix P Q R S T U V W i/p CoCo - Keyboard 0 1 2 3 4 5 6 7 PA3 i/p Keyboard Matrix H I J K L M N O i/p CoCo - Keyboard X Y Z Up Dwn Lft Rgt Space PA2 i/p Keyboard Matrix @ A B C D E F G i/p CoCo - Keyboard P Q R S T U V W PA1 i/p Keyboard Matrix 8 9 : ; , - . / i/p CoCo - Keyboard H I J K L M N O i/p Left Joystick Button PA0 i/p Keyboard Matrix 0 1 2 3 4 5 6 7 i/p CoCo - Keyboard @ A B C D E F G i/p Right Joystick Button
**** bus write $ff00
-------------------------------------------------------------------------------
*** write to periphery at $ff00 the value $0
$bb4c read pc byte: $43 from $bb4c
*** TODO: PIA write byte $0 to $ff00 | $ff00: $ff00 - PIA 0 A side Data reg. PA7 i/p Comparator input PA6 i/p Keyboard Matrix Ent Clr Brk N/c N/c N/c N/c Shift PA5 i/p Keyboard Matrix X Y Z Up Dwn Lft Rgt Space i/p CoCo - Keyboard 8 9 : ; , - . / PA4 i/p Keyboard Matrix P Q R S T U V W i/p CoCo - Keyboard 0 1 2 3 4 5 6 7 PA3 i/p Keyboard Matrix H I J K L M N O i/p CoCo - Keyboard X Y Z Up Dwn Lft Rgt Space PA2 i/p Keyboard Matrix @ A B C D E F G i/p CoCo - Keyboard P Q R S T U V W PA1 i/p Keyboard Matrix 8 9 : ; , - . / i/p CoCo - Keyboard H I J K L M N O i/p Left Joystick Button PA0 i/p Keyboard Matrix 0 1 2 3 4 5 6 7 i/p CoCo - Keyboard @ A B C D E F G i/p Right Joystick Button
$bb4c COMA INHERENT instruction_COM_register | $bb4c: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb4c *** last op code 167 count: 2 - new op code: $43 (COMA -> instruction_COM_register)
**** A value $-1 is negative
**** Value A (8-bit) wrap around to $ff
$bb4d COM A from $0 to $-1 | $-1: UNKNOWN
-------------------------------------------------------------------------------
$bb4d read pc byte: $a7 from $bb4d
$bb4d STA INDEXED instruction_ST8 | $bb4d: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb4e read pc byte: $02 from $bb4e
$bb4f addressing 'indexed' with postbyte: $2 == 00000010
**** bus read $ff02
Periphery.read_byte (cycle: 0x44) from: $ff02: $ff02 - PIA 0 B side Data reg. PB7 o/p Keyboard Matrix 7 / G O W Space Shift o/p Printer Out bit 7 PB6 o/p Keyboard Matrix 6 . F N V Right N/c o/p Printer Out bit 6 PB5 o/p Keyboard Matrix 5 - E M U Left N/c o/p Printer Out bit 5 PB4 o/p Keyboard Matrix 4 , D L T Down N/c o/p Printer Out bit 4 PB3 o/p Keyboard Matrix 3 ; C K S Up N/c o/p Printer Out bit 3 PB2 o/p Keyboard Matrix 2 : B J R Z Break o/p Printer Out bit 2 PB1 o/p Keyboard Matrix 1 9 A I Q Y Clear o/p Printer Out bit 1 PB0 o/p Keyboard Matrix 0 8 @ H P X Enter o/p Printer Out bit 0
*** TODO: PIA 0 B side data register
PIA call at $ff02 pia_0_B_data returned $0 | $ff02: $ff02 - PIA 0 B side Data reg. PB7 o/p Keyboard Matrix 7 / G O W Space Shift o/p Printer Out bit 7 PB6 o/p Keyboard Matrix 6 . F N V Right N/c o/p Printer Out bit 6 PB5 o/p Keyboard Matrix 5 - E M U Left N/c o/p Printer Out bit 5 PB4 o/p Keyboard Matrix 4 , D L T Down N/c o/p Printer Out bit 4 PB3 o/p Keyboard Matrix 3 ; C K S Up N/c o/p Printer Out bit 3 PB2 o/p Keyboard Matrix 2 : B J R Z Break o/p Printer Out bit 2 PB1 o/p Keyboard Matrix 1 9 A I Q Y Clear o/p Printer Out bit 1 PB0 o/p Keyboard Matrix 0 8 @ H P X Enter o/p Printer Out bit 0
$bb4f get 'indexed' byte: ea = $ff02 m = $0
$ff02 instruction_ST8 kwargs: ea=$ff02 m=$0 opcode=$a7 operand=<A (8-Bit):255>
$bb4f ST8 store value $ff from A at $ff02 | $ff02: $ff02 - PIA 0 B side Data reg. PB7 o/p Keyboard Matrix 7 / G O W Space Shift o/p Printer Out bit 7 PB6 o/p Keyboard Matrix 6 . F N V Right N/c o/p Printer Out bit 6 PB5 o/p Keyboard Matrix 5 - E M U Left N/c o/p Printer Out bit 5 PB4 o/p Keyboard Matrix 4 , D L T Down N/c o/p Printer Out bit 4 PB3 o/p Keyboard Matrix 3 ; C K S Up N/c o/p Printer Out bit 3 PB2 o/p Keyboard Matrix 2 : B J R Z Break o/p Printer Out bit 2 PB1 o/p Keyboard Matrix 1 9 A I Q Y Clear o/p Printer Out bit 1 PB0 o/p Keyboard Matrix 0 8 @ H P X Enter o/p Printer Out bit 0
**** bus write $ff02
*** write to periphery at $ff02 the value $ff
*** TODO: PIA write byte $ff to $ff02 | $ff02: $ff02 - PIA 0 B side Data reg. PB7 o/p Keyboard Matrix 7 / G O W Space Shift o/p Printer Out bit 7 PB6 o/p Keyboard Matrix 6 . F N V Right N/c o/p Printer Out bit 6 PB5 o/p Keyboard Matrix 5 - E M U Left N/c o/p Printer Out bit 5 PB4 o/p Keyboard Matrix 4 , D L T Down N/c o/p Printer Out bit 4 PB3 o/p Keyboard Matrix 3 ; C K S Up N/c o/p Printer Out bit 3 PB2 o/p Keyboard Matrix 2 : B J R Z Break o/p Printer Out bit 2 PB1 o/p Keyboard Matrix 1 9 A I Q Y Clear o/p Printer Out bit 1 PB0 o/p Keyboard Matrix 0 8 @ H P X Enter o/p Printer Out bit 0
-------------------------------------------------------------------------------
$bb4f read pc byte: $e7 from $bb4f
$bb4f STB INDEXED instruction_ST8 | $bb4f: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb50 read pc byte: $01 from $bb50
$bb51 addressing 'indexed' with postbyte: $1 == 00000001
**** bus read $ff01
Periphery.read_byte (cycle: 0x4c) from: $ff01: $ff01 - PIA 0 A side Control reg. CA1 i/p Horiz Sync Interrupt from VDG (15625Hz; CoCo 15750Hz) CA2 o/p Analogue Mux channel select line A Selects Joystick Axis (0 x-axis, 1 y-axis)
*** TODO: PIA 0 A side control register
PIA call at $ff01 pia_0_A_control returned $b3 | $ff01: $ff01 - PIA 0 A side Control reg. CA1 i/p Horiz Sync Interrupt from VDG (15625Hz; CoCo 15750Hz) CA2 o/p Analogue Mux channel select line A Selects Joystick Axis (0 x-axis, 1 y-axis)
$bb51 get 'indexed' byte: ea = $ff01 m = $b3
$ff01 instruction_ST8 kwargs: ea=$ff01 m=$b3 opcode=$e7 operand=<B (8-Bit):52>
$bb51 ST8 store value $34 from B at $ff01 | $ff01: $ff01 - PIA 0 A side Control reg. CA1 i/p Horiz Sync Interrupt from VDG (15625Hz; CoCo 15750Hz) CA2 o/p Analogue Mux channel select line A Selects Joystick Axis (0 x-axis, 1 y-axis)
**** bus write $ff01
-------------------------------------------------------------------------------
*** write to periphery at $ff01 the value $34
$bb51 read pc byte: $e7 from $bb51
*** TODO: PIA write byte $34 to $ff01 | $ff01: $ff01 - PIA 0 A side Control reg. CA1 i/p Horiz Sync Interrupt from VDG (15625Hz; CoCo 15750Hz) CA2 o/p Analogue Mux channel select line A Selects Joystick Axis (0 x-axis, 1 y-axis)
$bb51 STB INDEXED instruction_ST8 | $bb51: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb52 read pc byte: $03 from $bb52
$bb53 addressing 'indexed' with postbyte: $3 == 00000011
**** bus read $ff03
Periphery.read_byte (cycle: 0x54) from: $ff03: $ff03 - PIA 0 B side Control reg. CB1 i/p Field Sync Interrupt from VDG (50Hz; CoCo 60Hz) CB2 o/p Analogue Mux channel select line B Selects Joystick (0 right, 1 left)
*** TODO: PIA 0 B side control register
PIA call at $ff03 pia_0_B_control returned $35 | $ff03: $ff03 - PIA 0 B side Control reg. CB1 i/p Field Sync Interrupt from VDG (50Hz; CoCo 60Hz) CB2 o/p Analogue Mux channel select line B Selects Joystick (0 right, 1 left)
$bb53 get 'indexed' byte: ea = $ff03 m = $35
$bb53 ST8 store value $34 from B at $ff03 | $ff03: $ff03 - PIA 0 B side Control reg. CB1 i/p Field Sync Interrupt from VDG (50Hz; CoCo 60Hz) CB2 o/p Analogue Mux channel select line B Selects Joystick (0 right, 1 left)
**** bus write $ff03
*** write to periphery at $ff03 the value $34
*** TODO: PIA write byte $34 to $ff03 | $ff03: $ff03 - PIA 0 B side Control reg. CB1 i/p Field Sync Interrupt from VDG (50Hz; CoCo 60Hz) CB2 o/p Analogue Mux channel select line B Selects Joystick (0 right, 1 left)
-------------------------------------------------------------------------------
$bb53 read pc byte: $8e from $bb53
$bb53 LDX IMMEDIATE instruction_LD16 | $bb53: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb54 read pc word: $ff20 from $bb54
$bb54 addressing 'immediate word' value: $ff20
$bb54 *** last op code 231 count: 1 - new op code: $8e (LDX -> instruction_LD16)
$bb56 LD16 set X to $ff20 | $ff20: $ff20 - PIA 1 A side Data reg. PA7 o/p DAC bit 5 PA6 o/p DAC bit 4 PA5 o/p DAC bit 3 PA4 o/p DAC bit 2 PA3 o/p DAC bit 1 PA2 o/p DAC bit 0 PA1 o/p Printer Strobe - Active High (i.e. Lo-Hi-Lo to print) o/p CoCo - RS232 Tx o/p PA0 i/p Cassette waveform single bit input
-------------------------------------------------------------------------------
$bb56 read pc byte: $6f from $bb56
$bb56 CLR INDEXED instruction_CLR | $bb56: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb57 read pc byte: $01 from $bb57
$bb58 addressing 'indexed' with postbyte: $1 == 00000001
**** bus read $ff21
Periphery.read_byte (cycle: 0x62) from: $ff21: $ff21 - PIA 1 A side Control reg. CA1 i/p Printer Acknowledge i/p CoCo - CD RS232 Carrier Detect input CA2 o/p Cassette Relay Motor control
*** TODO: PIA 1 A side control register
PIA call at $ff21 pia_1_A_control returned $34 | $ff21: $ff21 - PIA 1 A side Control reg. CA1 i/p Printer Acknowledge i/p CoCo - CD RS232 Carrier Detect input CA2 o/p Cassette Relay Motor control
$bb58 get 'indexed' byte: ea = $ff21 m = $34
$ff21 instruction_CLR kwargs: ea=$ff21 m=$34 opcode=$6f
**** bus write $ff21
*** write to periphery at $ff21 the value $0
*** TODO: PIA write byte $0 to $ff21 | $ff21: $ff21 - PIA 1 A side Control reg. CA1 i/p Printer Acknowledge i/p CoCo - CD RS232 Carrier Detect input CA2 o/p Cassette Relay Motor control
-------------------------------------------------------------------------------
$bb58 read pc byte: $6f from $bb58
$bb58 CLR INDEXED instruction_CLR | $bb58: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb59 read pc byte: $03 from $bb59
$bb5a addressing 'indexed' with postbyte: $3 == 00000011
**** bus read $ff23
Periphery.read_byte (cycle: 0x6c) from: $ff23: $ff23 - PIA 1 B side Control reg. CB1 i/p Cartridge CART FIRQ auto-start signal CB2 o/p Sound Mux enable (1 enable, 0 single bit sound)
*** TODO: PIA 1 B side control register
PIA call at $ff23 pia_1_B_control returned $37 | $ff23: $ff23 - PIA 1 B side Control reg. CB1 i/p Cartridge CART FIRQ auto-start signal CB2 o/p Sound Mux enable (1 enable, 0 single bit sound)
$bb5a get 'indexed' byte: ea = $ff23 m = $37
**** bus write $ff23
*** write to periphery at $ff23 the value $0
*** TODO: PIA write byte $0 to $ff23 | $ff23: $ff23 - PIA 1 B side Control reg. CB1 i/p Cartridge CART FIRQ auto-start signal CB2 o/p Sound Mux enable (1 enable, 0 single bit sound)
-------------------------------------------------------------------------------
$bb5a read pc byte: $4a from $bb5a
$bb5a DECA INHERENT instruction_DEC_register | $bb5a: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb5a *** last op code 111 count: 1 - new op code: $4a (DECA -> instruction_DEC_register)
$bb5b DEC A value $ff -1 = $fe
-------------------------------------------------------------------------------
$bb5b read pc byte: $a7 from $bb5b
$bb5b STA INDEXED instruction_ST8 | $bb5b: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb5c read pc byte: $84 from $bb5c
$bb5d addressing 'indexed' with postbyte: $84 == 10000100
$bb5d indexed addressing mode ea=$ff20 | $ff20: $ff20 - PIA 1 A side Data reg. PA7 o/p DAC bit 5 PA6 o/p DAC bit 4 PA5 o/p DAC bit 3 PA4 o/p DAC bit 2 PA3 o/p DAC bit 1 PA2 o/p DAC bit 0 PA1 o/p Printer Strobe - Active High (i.e. Lo-Hi-Lo to print) o/p CoCo - RS232 Tx o/p PA0 i/p Cassette waveform single bit input
**** bus read $ff20
Periphery.read_byte (cycle: 0x7a) from: $ff20: $ff20 - PIA 1 A side Data reg. PA7 o/p DAC bit 5 PA6 o/p DAC bit 4 PA5 o/p DAC bit 3 PA4 o/p DAC bit 2 PA3 o/p DAC bit 1 PA2 o/p DAC bit 0 PA1 o/p Printer Strobe - Active High (i.e. Lo-Hi-Lo to print) o/p CoCo - RS232 Tx o/p PA0 i/p Cassette waveform single bit input
*** TODO: PIA 1 A side data register
PIA call at $ff20 pia_1_A_data returned $1 | $ff20: $ff20 - PIA 1 A side Data reg. PA7 o/p DAC bit 5 PA6 o/p DAC bit 4 PA5 o/p DAC bit 3 PA4 o/p DAC bit 2 PA3 o/p DAC bit 1 PA2 o/p DAC bit 0 PA1 o/p Printer Strobe - Active High (i.e. Lo-Hi-Lo to print) o/p CoCo - RS232 Tx o/p PA0 i/p Cassette waveform single bit input
$bb5d get 'indexed' byte: ea = $ff20 m = $1
$ff20 instruction_ST8 kwargs: ea=$ff20 m=$1 opcode=$a7 operand=<A (8-Bit):254>
$bb5d ST8 store value $fe from A at $ff20 | $ff20: $ff20 - PIA 1 A side Data reg. PA7 o/p DAC bit 5 PA6 o/p DAC bit 4 PA5 o/p DAC bit 3 PA4 o/p DAC bit 2 PA3 o/p DAC bit 1 PA2 o/p DAC bit 0 PA1 o/p Printer Strobe - Active High (i.e. Lo-Hi-Lo to print) o/p CoCo - RS232 Tx o/p PA0 i/p Cassette waveform single bit input
**** bus write $ff20
*** write to periphery at $ff20 the value $fe
*** TODO: PIA write byte $fe to $ff20 | $ff20: $ff20 - PIA 1 A side Data reg. PA7 o/p DAC bit 5 PA6 o/p DAC bit 4 PA5 o/p DAC bit 3 PA4 o/p DAC bit 2 PA3 o/p DAC bit 1 PA2 o/p DAC bit 0 PA1 o/p Printer Strobe - Active High (i.e. Lo-Hi-Lo to print) o/p CoCo - RS232 Tx o/p PA0 i/p Cassette waveform single bit input
-------------------------------------------------------------------------------
$bb5d read pc byte: $86 from $bb5d
$bb5d LDA IMMEDIATE instruction_LD8 | $bb5d: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb5e read pc byte: $f8 from $bb5e
$bb5e addressing 'immediate byte' value: $f8
$bb5e instruction_LD8 kwargs: ea=$bb5e m=$f8 opcode=$86 operand=<A (8-Bit):254>
$bb5f LD8 A = $f8 | $bb5e: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb5f read pc byte: $a7 from $bb5f
$bb5f STA INDEXED instruction_ST8 | $bb5f: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb60 read pc byte: $02 from $bb60
$bb61 addressing 'indexed' with postbyte: $2 == 00000010
**** bus read $ff22
Periphery.read_byte (cycle: 0x86) from: $ff22: $ff22 - PIA 1 B side Data reg. PB7 o/p *A/G VDG control line PB6 o/p GM2 VDG control line PB5 o/p GM1 VDG control line PB4 o/p GM0 or *INT/EXT VDG control line PB3 o/p CSS VDG control line PB2 i/p D32 - RAM size (0 8 x 32K bit; 1 16 x 16K bit) {6} o/p D64 - ROM select (1 32K mode; 0 64K mode) PB1 i/p Sample audio source o/p Single bit sound output PB0 i/p Printer Busy - Active High i/p CoCo - RS232 Rx input
*** TODO: PIA 1 B side data register
PIA call at $ff22 pia_1_B_data returned $34 | $ff22: $ff22 - PIA 1 B side Data reg. PB7 o/p *A/G VDG control line PB6 o/p GM2 VDG control line PB5 o/p GM1 VDG control line PB4 o/p GM0 or *INT/EXT VDG control line PB3 o/p CSS VDG control line PB2 i/p D32 - RAM size (0 8 x 32K bit; 1 16 x 16K bit) {6} o/p D64 - ROM select (1 32K mode; 0 64K mode) PB1 i/p Sample audio source o/p Single bit sound output PB0 i/p Printer Busy - Active High i/p CoCo - RS232 Rx input
$bb61 get 'indexed' byte: ea = $ff22 m = $34
$ff22 instruction_ST8 kwargs: ea=$ff22 m=$34 opcode=$a7 operand=<A (8-Bit):248>
$bb61 ST8 store value $f8 from A at $ff22 | $ff22: $ff22 - PIA 1 B side Data reg. PB7 o/p *A/G VDG control line PB6 o/p GM2 VDG control line PB5 o/p GM1 VDG control line PB4 o/p GM0 or *INT/EXT VDG control line PB3 o/p CSS VDG control line PB2 i/p D32 - RAM size (0 8 x 32K bit; 1 16 x 16K bit) {6} o/p D64 - ROM select (1 32K mode; 0 64K mode) PB1 i/p Sample audio source o/p Single bit sound output PB0 i/p Printer Busy - Active High i/p CoCo - RS232 Rx input
**** bus write $ff22
-------------------------------------------------------------------------------
*** write to periphery at $ff22 the value $f8
$bb61 read pc byte: $e7 from $bb61
*** TODO: PIA write byte $f8 to $ff22 | $ff22: $ff22 - PIA 1 B side Data reg. PB7 o/p *A/G VDG control line PB6 o/p GM2 VDG control line PB5 o/p GM1 VDG control line PB4 o/p GM0 or *INT/EXT VDG control line PB3 o/p CSS VDG control line PB2 i/p D32 - RAM size (0 8 x 32K bit; 1 16 x 16K bit) {6} o/p D64 - ROM select (1 32K mode; 0 64K mode) PB1 i/p Sample audio source o/p Single bit sound output PB0 i/p Printer Busy - Active High i/p CoCo - RS232 Rx input
$bb61 STB INDEXED instruction_ST8 | $bb61: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb62 read pc byte: $01 from $bb62
$bb63 addressing 'indexed' with postbyte: $1 == 00000001
**** bus read $ff21
Periphery.read_byte (cycle: 0x8e) from: $ff21: $ff21 - PIA 1 A side Control reg. CA1 i/p Printer Acknowledge i/p CoCo - CD RS232 Carrier Detect input CA2 o/p Cassette Relay Motor control
*** TODO: PIA 1 A side control register
PIA call at $ff21 pia_1_A_control returned $34 | $ff21: $ff21 - PIA 1 A side Control reg. CA1 i/p Printer Acknowledge i/p CoCo - CD RS232 Carrier Detect input CA2 o/p Cassette Relay Motor control
$bb63 get 'indexed' byte: ea = $ff21 m = $34
$ff21 instruction_ST8 kwargs: ea=$ff21 m=$34 opcode=$e7 operand=<B (8-Bit):52>
$bb63 ST8 store value $34 from B at $ff21 | $ff21: $ff21 - PIA 1 A side Control reg. CA1 i/p Printer Acknowledge i/p CoCo - CD RS232 Carrier Detect input CA2 o/p Cassette Relay Motor control
**** bus write $ff21
-------------------------------------------------------------------------------
$bb63 read pc byte: $e7 from $bb63
$bb63 STB INDEXED instruction_ST8 | $bb63: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb64 read pc byte: $03 from $bb64
$bb65 addressing 'indexed' with postbyte: $3 == 00000011
**** bus read $ff23
*** write to periphery at $ff21 the value $34
*** TODO: PIA write byte $34 to $ff21 | $ff21: $ff21 - PIA 1 A side Control reg. CA1 i/p Printer Acknowledge i/p CoCo - CD RS232 Carrier Detect input CA2 o/p Cassette Relay Motor control
Periphery.read_byte (cycle: 0x96) from: $ff23: $ff23 - PIA 1 B side Control reg. CB1 i/p Cartridge CART FIRQ auto-start signal CB2 o/p Sound Mux enable (1 enable, 0 single bit sound)
*** TODO: PIA 1 B side control register
PIA call at $ff23 pia_1_B_control returned $37 | $ff23: $ff23 - PIA 1 B side Control reg. CB1 i/p Cartridge CART FIRQ auto-start signal CB2 o/p Sound Mux enable (1 enable, 0 single bit sound)
$bb65 get 'indexed' byte: ea = $ff23 m = $37
$bb65 ST8 store value $34 from B at $ff23 | $ff23: $ff23 - PIA 1 B side Control reg. CB1 i/p Cartridge CART FIRQ auto-start signal CB2 o/p Sound Mux enable (1 enable, 0 single bit sound)
**** bus write $ff23
-------------------------------------------------------------------------------
$bb65 read pc byte: $6f from $bb65
$bb65 CLR INDEXED instruction_CLR | $bb65: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb66 read pc byte: $84 from $bb66
$bb67 addressing 'indexed' with postbyte: $84 == 10000100
$bb67 indexed addressing mode ea=$ff20 | $ff20: $ff20 - PIA 1 A side Data reg. PA7 o/p DAC bit 5 PA6 o/p DAC bit 4 PA5 o/p DAC bit 3 PA4 o/p DAC bit 2 PA3 o/p DAC bit 1 PA2 o/p DAC bit 0 PA1 o/p Printer Strobe - Active High (i.e. Lo-Hi-Lo to print) o/p CoCo - RS232 Tx o/p PA0 i/p Cassette waveform single bit input
**** bus read $ff20
*** write to periphery at $ff23 the value $34
*** TODO: PIA write byte $34 to $ff23 | $ff23: $ff23 - PIA 1 B side Control reg. CB1 i/p Cartridge CART FIRQ auto-start signal CB2 o/p Sound Mux enable (1 enable, 0 single bit sound)
Periphery.read_byte (cycle: 0x9f) from: $ff20: $ff20 - PIA 1 A side Data reg. PA7 o/p DAC bit 5 PA6 o/p DAC bit 4 PA5 o/p DAC bit 3 PA4 o/p DAC bit 2 PA3 o/p DAC bit 1 PA2 o/p DAC bit 0 PA1 o/p Printer Strobe - Active High (i.e. Lo-Hi-Lo to print) o/p CoCo - RS232 Tx o/p PA0 i/p Cassette waveform single bit input
*** TODO: PIA 1 A side data register
PIA call at $ff20 pia_1_A_data returned $1 | $ff20: $ff20 - PIA 1 A side Data reg. PA7 o/p DAC bit 5 PA6 o/p DAC bit 4 PA5 o/p DAC bit 3 PA4 o/p DAC bit 2 PA3 o/p DAC bit 1 PA2 o/p DAC bit 0 PA1 o/p Printer Strobe - Active High (i.e. Lo-Hi-Lo to print) o/p CoCo - RS232 Tx o/p PA0 i/p Cassette waveform single bit input
$bb67 get 'indexed' byte: ea = $ff20 m = $1
$ff20 *** last op code 231 count: 1 - new op code: $6f (CLR -> instruction_CLR)
**** bus write $ff20
-------------------------------------------------------------------------------
*** write to periphery at $ff20 the value $0
$bb67 read pc byte: $6f from $bb67
*** TODO: PIA write byte $0 to $ff20 | $ff20: $ff20 - PIA 1 A side Data reg. PA7 o/p DAC bit 5 PA6 o/p DAC bit 4 PA5 o/p DAC bit 3 PA4 o/p DAC bit 2 PA3 o/p DAC bit 1 PA2 o/p DAC bit 0 PA1 o/p Printer Strobe - Active High (i.e. Lo-Hi-Lo to print) o/p CoCo - RS232 Tx o/p PA0 i/p Cassette waveform single bit input
$bb67 CLR INDEXED instruction_CLR | $bb67: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb68 read pc byte: $02 from $bb68
$bb69 addressing 'indexed' with postbyte: $2 == 00000010
**** bus read $ff22
Periphery.read_byte (cycle: 0xa9) from: $ff22: $ff22 - PIA 1 B side Data reg. PB7 o/p *A/G VDG control line PB6 o/p GM2 VDG control line PB5 o/p GM1 VDG control line PB4 o/p GM0 or *INT/EXT VDG control line PB3 o/p CSS VDG control line PB2 i/p D32 - RAM size (0 8 x 32K bit; 1 16 x 16K bit) {6} o/p D64 - ROM select (1 32K mode; 0 64K mode) PB1 i/p Sample audio source o/p Single bit sound output PB0 i/p Printer Busy - Active High i/p CoCo - RS232 Rx input
*** TODO: PIA 1 B side data register
PIA call at $ff22 pia_1_B_data returned $34 | $ff22: $ff22 - PIA 1 B side Data reg. PB7 o/p *A/G VDG control line PB6 o/p GM2 VDG control line PB5 o/p GM1 VDG control line PB4 o/p GM0 or *INT/EXT VDG control line PB3 o/p CSS VDG control line PB2 i/p D32 - RAM size (0 8 x 32K bit; 1 16 x 16K bit) {6} o/p D64 - ROM select (1 32K mode; 0 64K mode) PB1 i/p Sample audio source o/p Single bit sound output PB0 i/p Printer Busy - Active High i/p CoCo - RS232 Rx input
$bb69 get 'indexed' byte: ea = $ff22 m = $34
**** bus write $ff22
-------------------------------------------------------------------------------
*** write to periphery at $ff22 the value $0
$bb69 read pc byte: $a6 from $bb69
*** TODO: PIA write byte $0 to $ff22 | $ff22: $ff22 - PIA 1 B side Data reg. PB7 o/p *A/G VDG control line PB6 o/p GM2 VDG control line PB5 o/p GM1 VDG control line PB4 o/p GM0 or *INT/EXT VDG control line PB3 o/p CSS VDG control line PB2 i/p D32 - RAM size (0 8 x 32K bit; 1 16 x 16K bit) {6} o/p D64 - ROM select (1 32K mode; 0 64K mode) PB1 i/p Sample audio source o/p Single bit sound output PB0 i/p Printer Busy - Active High i/p CoCo - RS232 Rx input
$bb69 LDA INDEXED instruction_LD8 | $bb69: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb6a read pc byte: $02 from $bb6a
$bb6b addressing 'indexed' with postbyte: $2 == 00000010
**** bus read $ff22
Periphery.read_byte (cycle: 0xb3) from: $ff22: $ff22 - PIA 1 B side Data reg. PB7 o/p *A/G VDG control line PB6 o/p GM2 VDG control line PB5 o/p GM1 VDG control line PB4 o/p GM0 or *INT/EXT VDG control line PB3 o/p CSS VDG control line PB2 i/p D32 - RAM size (0 8 x 32K bit; 1 16 x 16K bit) {6} o/p D64 - ROM select (1 32K mode; 0 64K mode) PB1 i/p Sample audio source o/p Single bit sound output PB0 i/p Printer Busy - Active High i/p CoCo - RS232 Rx input
*** TODO: PIA 1 B side data register
PIA call at $ff22 pia_1_B_data returned $34 | $ff22: $ff22 - PIA 1 B side Data reg. PB7 o/p *A/G VDG control line PB6 o/p GM2 VDG control line PB5 o/p GM1 VDG control line PB4 o/p GM0 or *INT/EXT VDG control line PB3 o/p CSS VDG control line PB2 i/p D32 - RAM size (0 8 x 32K bit; 1 16 x 16K bit) {6} o/p D64 - ROM select (1 32K mode; 0 64K mode) PB1 i/p Sample audio source o/p Single bit sound output PB0 i/p Printer Busy - Active High i/p CoCo - RS232 Rx input
$bb6b get 'indexed' byte: ea = $ff22 m = $34
$ff22 *** last op code 111 count: 1 - new op code: $a6 (LDA -> instruction_LD8)
$bb6b LD8 A = $34 | $ff22: $ff22 - PIA 1 B side Data reg. PB7 o/p *A/G VDG control line PB6 o/p GM2 VDG control line PB5 o/p GM1 VDG control line PB4 o/p GM0 or *INT/EXT VDG control line PB3 o/p CSS VDG control line PB2 i/p D32 - RAM size (0 8 x 32K bit; 1 16 x 16K bit) {6} o/p D64 - ROM select (1 32K mode; 0 64K mode) PB1 i/p Sample audio source o/p Single bit sound output PB0 i/p Printer Busy - Active High i/p CoCo - RS232 Rx input
-------------------------------------------------------------------------------
$bb6b read pc byte: $8e from $bb6b
$bb6b LDX IMMEDIATE instruction_LD16 | $bb6b: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb6c read pc word: $ffc0 from $bb6c
$bb6c addressing 'immediate word' value: $ffc0
$bb6c instruction_LD16 kwargs: ea=$bb6c m=$ffc0 opcode=$8e operand=<X (8-Bit):65312>
$bb6e LD16 set X to $ffc0 | $ffc0: $ffc0-$ffc1 - SAM VDG Reg V0
-------------------------------------------------------------------------------
$bb6e read pc byte: $c6 from $bb6e
$bb6e LDB IMMEDIATE instruction_LD8 | $bb6e: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb6f read pc byte: $10 from $bb6f
$bb6f addressing 'immediate byte' value: $10
$bb6f instruction_LD8 kwargs: ea=$bb6f m=$10 opcode=$c6 operand=<B (8-Bit):52>
$bb70 LD8 B = $10 | $bb6f: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0xc6) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
-------------------------------------------------------------------------------
*** write to periphery at $ffc2 the value $34
$bb72 read pc byte: $5a from $bb72
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):16>
$bb73 DEC B value $10 -1 = $f
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0xd9) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
-------------------------------------------------------------------------------
*** write to periphery at $ffc2 the value $34
$bb72 read pc byte: $5a from $bb72
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):15>
$bb73 DEC B value $f -1 = $e
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0xec) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
-------------------------------------------------------------------------------
*** write to periphery at $ffc2 the value $34
$bb72 read pc byte: $5a from $bb72
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):14>
$bb73 DEC B value $e -1 = $d
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0xff) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
*** write to periphery at $ffc2 the value $34
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
-------------------------------------------------------------------------------
$bb72 read pc byte: $5a from $bb72
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):13>
$bb73 DEC B value $d -1 = $c
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0x112) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
*** write to periphery at $ffc2 the value $34
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
-------------------------------------------------------------------------------
$bb72 read pc byte: $5a from $bb72
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):12>
$bb73 DEC B value $c -1 = $b
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0x125) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
*** write to periphery at $ffc2 the value $34
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
-------------------------------------------------------------------------------
$bb72 read pc byte: $5a from $bb72
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):11>
$bb73 DEC B value $b -1 = $a
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0x138) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
*** write to periphery at $ffc2 the value $34
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
-------------------------------------------------------------------------------
$bb72 read pc byte: $5a from $bb72
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):10>
$bb73 DEC B value $a -1 = $9
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0x14b) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
-------------------------------------------------------------------------------
*** write to periphery at $ffc2 the value $34
$bb72 read pc byte: $5a from $bb72
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):9>
$bb73 DEC B value $9 -1 = $8
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0x15e) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
-------------------------------------------------------------------------------
*** write to periphery at $ffc2 the value $34
$bb72 read pc byte: $5a from $bb72
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):8>
$bb73 DEC B value $8 -1 = $7
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0x171) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
-------------------------------------------------------------------------------
*** write to periphery at $ffc2 the value $34
$bb72 read pc byte: $5a from $bb72
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):7>
$bb73 DEC B value $7 -1 = $6
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0x184) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
*** write to periphery at $ffc2 the value $34
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
-------------------------------------------------------------------------------
$bb72 read pc byte: $5a from $bb72
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):6>
$bb73 DEC B value $6 -1 = $5
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0x197) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
*** write to periphery at $ffc2 the value $34
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
-------------------------------------------------------------------------------
$bb72 read pc byte: $5a from $bb72
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):5>
$bb73 DEC B value $5 -1 = $4
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0x1aa) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
-------------------------------------------------------------------------------
*** write to periphery at $ffc2 the value $34
$bb72 read pc byte: $5a from $bb72
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):4>
$bb73 DEC B value $4 -1 = $3
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0x1bd) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
*** write to periphery at $ffc2 the value $34
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
-------------------------------------------------------------------------------
$bb72 read pc byte: $5a from $bb72
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):3>
$bb73 DEC B value $3 -1 = $2
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0x1d0) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
*** write to periphery at $ffc2 the value $34
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
-------------------------------------------------------------------------------
$bb72 read pc byte: $5a from $bb72
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):2>
$bb73 DEC B value $2 -1 = $1
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE branch to $bb70, because Z==0 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb70 read pc byte: $a7 from $bb70
$bb70 STA INDEXED instruction_ST8 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb71 read pc byte: $81 from $bb71
$bb72 addressing 'indexed' with postbyte: $81 == 10000001
$bb72 indexed addressing mode ea=$ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus read $ffc2
Periphery.read_byte (cycle: 0x1e3) from: $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
TODO: SAM call at $ffc2
SAM call at $ffc2 returned $7e | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 get 'indexed' byte: ea = $ffc2 m = $7e
$ffc2 instruction_ST8 kwargs: ea=$ffc2 m=$7e opcode=$a7 operand=<A (8-Bit):52>
$bb72 ST8 store value $34 from A at $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
**** bus write $ffc2
-------------------------------------------------------------------------------
*** write to periphery at $ffc2 the value $34
$bb72 read pc byte: $5a from $bb72
*** TODO: SAM write byte $34 to $ffc2 | $ffc2: $ffc2-$ffc3 - SAM VDG Reg V1
$bb72 DECB INHERENT instruction_DEC_register | $bb72: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb72 instruction_DEC_register kwargs: opcode=$5a operand=<B (8-Bit):1>
$bb73 DEC B value $1 -1 = $0
-------------------------------------------------------------------------------
$bb73 read pc byte: $26 from $bb73
$bb73 BNE RELATIVE instruction_BNE | $bb73: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb74 read pc byte: $fb from $bb74
$bb75 addressing 'relative' ea = $bb75 + -5 = $bb70 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb75 get 'relative' byte: ea = $bb70 m = $a7
$bb70 instruction_BNE kwargs: ea=$bb70 m=$a7 opcode=$26
$bb75 BNE: don't branch to $bb70, because Z==1 | $bb70: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb75 read pc byte: $f7 from $bb75
$bb75 STB EXTENDED instruction_ST8 | $bb75: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb76 read pc word: $ffc9 from $bb76
$bb78 addressing 'extended indirect' ea: $ffc9 | $ffc9: $ffc8-$ffc9 - SAM Display Offset bit F1
**** bus read $ffca
Periphery.read_byte (cycle: 0x1f5) from: $ffca: $ffca-$ffcb - SAM Display Offset bit F2
TODO: SAM call at $ffca
SAM call at $ffca returned $7e | $ffca: $ffca-$ffcb - SAM Display Offset bit F2
**** bus read $ffc9
Periphery.read_byte (cycle: 0x1f6) from: $ffc9: $ffc8-$ffc9 - SAM Display Offset bit F1
TODO: SAM call at $ffc9
SAM call at $ffc9 returned $7e | $ffc9: $ffc8-$ffc9 - SAM Display Offset bit F1
$bb78 get 'extended' word: ea = $ffc9 m = $7e7e
$ffc9 instruction_ST8 kwargs: ea=$ffc9 m=$7e7e opcode=$f7 operand=<B (8-Bit):0>
$bb78 ST8 store value $0 from B at $ffc9 | $ffc9: $ffc8-$ffc9 - SAM Display Offset bit F1
**** bus write $ffc9
*** write to periphery at $ffc9 the value $0
*** TODO: SAM write byte $0 to $ffc9 | $ffc9: $ffc8-$ffc9 - SAM Display Offset bit F1
-------------------------------------------------------------------------------
$bb78 read pc byte: $85 from $bb78
$bb78 BITA IMMEDIATE instruction_BIT | $bb78: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb79 read pc byte: $04 from $bb79
$bb79 addressing 'immediate byte' value: $4
$bb79 instruction_BIT kwargs: ea=$bb79 m=$4 opcode=$85 operand=<A (8-Bit):52>
$bb7a BIT update CC with $4 (m:4 & A:52)
-------------------------------------------------------------------------------
$bb7a read pc byte: $27 from $bb7a
$bb7a BEQ RELATIVE instruction_BEQ | $bb7a: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb7b read pc byte: $05 from $bb7b
$bb7c addressing 'relative' ea = $bb7c + 5 = $bb81 | $bb81: $bb80-$bb82 - D64 - Boots 64K mode with JMP $bf49
$bb7c get 'relative' byte: ea = $bb81 m = $f7
$bb81 instruction_BEQ kwargs: ea=$bb81 m=$f7 opcode=$27
$bb7c BEQ: don't branch to $f7, because Z==0 | $f7: $e6-$ff - D32 - Unused in Dragon 32 w/o DOS
-------------------------------------------------------------------------------
$bb7c read pc byte: $f7 from $bb7c
$bb7c STB EXTENDED instruction_ST8 | $bb7c: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb7d read pc word: $ffdb from $bb7d
$bb7f addressing 'extended indirect' ea: $ffdb | $ffdb: $ffda-$ffdb - SAM Memory Size select bit M0
**** bus read $ffdc
Periphery.read_byte (cycle: 0x20a) from: $ffdc: $ffdc-$ffdd - SAM Memory Size select bit M1
TODO: SAM call at $ffdc
SAM call at $ffdc returned $7e | $ffdc: $ffdc-$ffdd - SAM Memory Size select bit M1
**** bus read $ffdb
Periphery.read_byte (cycle: 0x20b) from: $ffdb: $ffda-$ffdb - SAM Memory Size select bit M0
TODO: SAM call at $ffdb
SAM call at $ffdb returned $7e | $ffdb: $ffda-$ffdb - SAM Memory Size select bit M0
$bb7f get 'extended' word: ea = $ffdb m = $7e7e
$ffdb instruction_ST8 kwargs: ea=$ffdb m=$7e7e opcode=$f7 operand=<B (8-Bit):0>
$bb7f ST8 store value $0 from B at $ffdb | $ffdb: $ffda-$ffdb - SAM Memory Size select bit M0
**** bus write $ffdb
*** write to periphery at $ffdb the value $0
*** TODO: SAM write byte $0 to $ffdb | $ffdb: $ffda-$ffdb - SAM Memory Size select bit M0
-------------------------------------------------------------------------------
$bb7f read pc byte: $20 from $bb7f
$bb7f BRA RELATIVE instruction_BRA | $bb7f: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb80 read pc byte: $03 from $bb80
$bb81 addressing 'relative' ea = $bb81 + 3 = $bb84 | $bb84: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb81 get 'relative' byte: ea = $bb84 m = $1f
$bb84 instruction_BRA kwargs: ea=$bb84 m=$1f opcode=$20
$bb81 BRA branch to $bb84 | $bb84: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
-------------------------------------------------------------------------------
$bb84 read pc byte: $1f from $bb84
$bb84 TFR IMMEDIATE instruction_TFR | $bb84: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb85 read pc byte: $9b from $bb85
$bb85 addressing 'immediate byte' value: $9b
$bb85 instruction_TFR kwargs: ea=$bb85 m=$9b opcode=$1f
$bb86 TFR: post byte: $9b -> high: $9 low: $b
get register value $0 from B ($9)
set register DP ($b) to $0
-------------------------------------------------------------------------------
$bb86 read pc byte: $1f from $bb86
$bb86 TFR IMMEDIATE instruction_TFR | $bb86: $bb40-$bb87 - D32 - Hardware init, JMPd to from $8000, Y should contain return address
$bb87 read pc byte: $25 from $bb87
$bb87 addressing 'immediate byte' value: $25
$bb88 TFR: post byte: $25 -> high: $2 low: $5
get register value $b39b from Y ($2)
set register PC ($5) to $b39b
-------------------------------------------------------------------------------
$b39b read pc byte: $10 from $b39b
$b39b PAGE1+ VARIANT instruction_PAGE | $b39b: $b39b-$b3b3 - Called after Hardware init routine, following a RESET Inits stack, checks for Cold/warm start. If $0071 contains 0x55 and $0072:0073 points to NOP then execution is passed to [$0072:0073] otherwise branches to $b3ba
$b39b *** last op code 31 count: 1 - new op code: $10 (PAGE1+ -> instruction_PAGE)
$b39c read pc byte: $ce from $b39c
$b39d *** call paged opcode $10ce
$b39c LDS IMMEDIATE instruction_LD16 | $b39c: $b39b-$b3b3 - Called after Hardware init routine, following a RESET Inits stack, checks for Cold/warm start. If $0071 contains 0x55 and $0072:0073 points to NOP then execution is passed to [$0072:0073] otherwise branches to $b3ba
$b39d read pc word: $03d7 from $b39d
$b39d addressing 'immediate word' value: $3d7
$b39d instruction_LD16 kwargs: ea=$b39d m=$3d7 opcode=$10ce operand=<S (8-Bit):65535>
$b39f LD16 set S to $3d7 | $3d7: $2dd-$3d8 - BASIC line input buffer - used for de-/tokenising data
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
$b39f read pc byte: $86 from $b39f
$b39f LDA IMMEDIATE instruction_LD8 | $b39f: $b39b-$b3b3 - Called after Hardware init routine, following a RESET Inits stack, checks for Cold/warm start. If $0071 contains 0x55 and $0072:0073 points to NOP then execution is passed to [$0072:0073] otherwise branches to $b3ba
$b3a0 read pc byte: $37 from $b3a0
$b3a0 addressing 'immediate byte' value: $37
$b3a0 instruction_LD8 kwargs: ea=$b3a0 m=$37 opcode=$86 operand=<A (8-Bit):52>
$b3a1 LD8 A = $37 | $b3a0: $b39b-$b3b3 - Called after Hardware init routine, following a RESET Inits stack, checks for Cold/warm start. If $0071 contains 0x55 and $0072:0073 points to NOP then execution is passed to [$0072:0073] otherwise branches to $b3ba
-------------------------------------------------------------------------------
$b3a1 read pc byte: $b7 from $b3a1
$b3a1 STA EXTENDED instruction_ST8 | $b3a1: $b39b-$b3b3 - Called after Hardware init routine, following a RESET Inits stack, checks for Cold/warm start. If $0071 contains 0x55 and $0072:0073 points to NOP then execution is passed to [$0072:0073] otherwise branches to $b3ba
$b3a2 read pc word: $ff23 from $b3a2
$b3a4 addressing 'extended indirect' ea: $ff23 | $ff23: $ff23 - PIA 1 B side Control reg. CB1 i/p Cartridge CART FIRQ auto-start signal CB2 o/p Sound Mux enable (1 enable, 0 single bit sound)
**** bus read $ff24
Periphery.read_byte (cycle: 0x23a) from: $ff24: $bff0-$fff1 - Reserved ($0000)
ERROR: no periphery handler at $ff24 (cycle: 570) | $ff24: $bff0-$fff1 - Reserved ($0000)
**** bus read $ff23
Periphery.read_byte (cycle: 0x23b) from: $ff23: $ff23 - PIA 1 B side Control reg. CB1 i/p Cartridge CART FIRQ auto-start signal CB2 o/p Sound Mux enable (1 enable, 0 single bit sound)
*** TODO: PIA 1 B side control register
PIA call at $ff23 pia_1_B_control returned $37 | $ff23: $ff23 - PIA 1 B side Control reg. CB1 i/p Cartridge CART FIRQ auto-start signal CB2 o/p Sound Mux enable (1 enable, 0 single bit sound)
$b3a4 get 'extended' word: ea = $ff23 m = $3700
$ff23 instruction_ST8 kwargs: ea=$ff23 m=$3700 opcode=$b7 operand=<A (8-Bit):55>
$b3a4 ST8 store value $37 from A at $ff23 | $ff23: $ff23 - PIA 1 B side Control reg. CB1 i/p Cartridge CART FIRQ auto-start signal CB2 o/p Sound Mux enable (1 enable, 0 single bit sound)
**** bus write $ff23
-------------------------------------------------------------------------------
$b3a4 read pc byte: $96 from $b3a4
$b3a4 LDA DIRECT instruction_LD8 | $b3a4: $b39b-$b3b3 - Called after Hardware init routine, following a RESET Inits stack, checks for Cold/warm start. If $0071 contains 0x55 and $0072:0073 points to NOP then execution is passed to [$0072:0073] otherwise branches to $b3ba
$b3a5 read pc byte: $71 from $b3a5
$b3a6 addressing 'direct': ea = $0 << 8 | $71 = $71
$b3a6 get 'direct' byte: ea = m = $71
$71 instruction_LD8 kwargs: ea=$71 m=$71 opcode=$96 operand=<A (8-Bit):55>
$b3a6 LD8 A = $71 | $71: $71 - Restart flag - if not 0x55 cold start on reset, see $0072
-------------------------------------------------------------------------------
$b3a6 read pc byte: $81 from $b3a6
$b3a6 CMPA IMMEDIATE instruction_CMP8 | $b3a6: $b39b-$b3b3 - Called after Hardware init routine, following a RESET Inits stack, checks for Cold/warm start. If $0071 contains 0x55 and $0072:0073 points to NOP then execution is passed to [$0072:0073] otherwise branches to $b3ba
$b3a7 read pc byte: $55 from $b3a7
$b3a7 addressing 'immediate byte' value: $55
$b3a7 instruction_CMP8 kwargs: ea=$b3a7 m=$55 opcode=$81 operand=<A (8-Bit):113>
$b3a8 CMP8 A $71 - $55 = $1c
-------------------------------------------------------------------------------
$b3a8 read pc byte: $26 from $b3a8
$b3a8 BNE RELATIVE instruction_BNE | $b3a8: $b39b-$b3b3 - Called after Hardware init routine, following a RESET Inits stack, checks for Cold/warm start. If $0071 contains 0x55 and $0072:0073 points to NOP then execution is passed to [$0072:0073] otherwise branches to $b3ba
$b3a9 read pc byte: $10 from $b3a9
$b3aa addressing 'relative' ea = $b3aa + 16 = $b3ba | $b3ba: $b3ba - Cold start routine - clears lo mem, inits BASIC
$b3aa get 'relative' byte: ea = $b3ba m = $8e
$b3ba instruction_BNE kwargs: ea=$b3ba m=$8e opcode=$26
$b3aa BNE branch to $b3ba, because Z==0 | $b3ba: $b3ba - Cold start routine - clears lo mem, inits BASIC
-------------------------------------------------------------------------------
$b3ba read pc byte: $8e from $b3ba
$b3ba LDX IMMEDIATE instruction_LD16 | $b3ba: $b3ba - Cold start routine - clears lo mem, inits BASIC
$b3bb read pc word: $0401 from $b3bb
$b3bb addressing 'immediate word' value: $401
$b3bb instruction_LD16 kwargs: ea=$b3bb m=$401 opcode=$8e operand=<X (8-Bit):65472>
$b3bd LD16 set X to $401 | $401: $400-$5ff - Default Text screen
-------------------------------------------------------------------------------
$b3bd read pc byte: $6f from $b3bd
$b3bd CLR INDEXED instruction_CLR | $b3bd: $a000-$bfff - CoCo - Color BASIC ROM
$b3be read pc byte: $83 from $b3be
$b3bf addressing 'indexed' with postbyte: $83 == 10000011
$b3bf indexed addressing mode ea=$3ff | $3ff: $3ff - D64 - %PRNSEL% selects default printer port 0x00 Parallel, non-0x00 Serial (0x00)
$b3bf get 'indexed' byte: ea = $3ff m = $0
$3ff instruction_CLR kwargs: ea=$3ff m=$0 opcode=$6f
**** write $0 to $3ff - mem info:
$0: $0 - BREAK message flag - if negative print BREAK
$3ff: $3ff - D64 - %PRNSEL% selects default printer port 0x00 Parallel, non-0x00 Serial (0x00)
-------------------------------------------------------------------------------
$b3bf read pc byte: $30 from $b3bf
$b3bf LEAX INDEXED instruction_LEA_register | $b3bf: $a000-$bfff - CoCo - Color BASIC ROM
$b3c0 read pc byte: $01 from $b3c0
$b3c1 addressing 'indexed' with postbyte: $1 == 00000001
*** write to periphery at $ff23 the value $37
*** TODO: PIA write byte $37 to $ff23 | $ff23: $ff23 - PIA 1 B side Control reg. CB1 i/p Cartridge CART FIRQ auto-start signal CB2 o/p Sound Mux enable (1 enable, 0 single bit sound)
$b3c1 get 'indexed' byte: ea = $402 m = $0
$402 instruction_LEA_register kwargs: ea=$402 m=$0 opcode=$30 operand=<X (8-Bit):1025>
$b3c1 LEA X: Set X to $402 | $402: $400-$5ff - Default Text screen
-------------------------------------------------------------------------------
$b3c1 read pc byte: $26 from $b3c1
$b3c1 BNE RELATIVE instruction_BNE | $b3c1: $a000-$bfff - CoCo - Color BASIC ROM
$b3c2 read pc byte: $fa from $b3c2
$b3c3 addressing 'relative' ea = $b3c3 + -6 = $b3bd | $b3bd: $a000-$bfff - CoCo - Color BASIC ROM
$b3c3 get 'relative' byte: ea = $b3bd m = $6f
$b3bd instruction_BNE kwargs: ea=$b3bd m=$6f opcode=$26
$b3c3 BNE: don't branch to $b3bd, because Z==1 | $b3bd: $a000-$bfff - CoCo - Color BASIC ROM
-------------------------------------------------------------------------------
$b3c3 read pc byte: $bd from $b3c3
$b3c3 JSR EXTENDED instruction_JSR | $b3c3: $a000-$bfff - CoCo - Color BASIC ROM
$b3c4 read pc word: $ba77 from $b3c4
$b3c6 addressing 'extended indirect' ea: $ba77 | $ba77: $ba77-$ba85 - Clears text screen (CoCo $a928)
$b3c6 get 'extended' word: ea = $ba77 m = $c660
$ba77 instruction_JSR kwargs: ea=$ba77 m=$c660 opcode=$bd
$b3c6 JSR to $ba77 | $ba77: $ba77-$ba85 - Clears text screen (CoCo $a928)
push word $b3c6 to stack
**** write $b3 to $3d5 - mem info:
$b3: $b3 - Current background colour (0x00)
$3d5: $2dd-$3d8 - BASIC line input buffer - used for de-/tokenising data
**** write $c6 to $3d6 - mem info:
$c6: $c5-$c6 - Current vertical pixel number
$3d6: $2dd-$3d8 - BASIC line input buffer - used for de-/tokenising data
-------------------------------------------------------------------------------
$ba77 read pc byte: $c6 from $ba77
$ba77 LDB IMMEDIATE instruction_LD8 | $ba77: $ba77-$ba85 - Clears text screen (CoCo $a928)
$ba78 read pc byte: $60 from $ba78
$ba78 addressing 'immediate byte' value: $60
$ba78 instruction_LD8 kwargs: ea=$ba78 m=$60 opcode=$c6 operand=<B (8-Bit):0>
$ba79 LD8 B = $60 | $ba78: $ba77-$ba85 - Clears text screen (CoCo $a928)
-------------------------------------------------------------------------------
$ba79 read pc byte: $8e from $ba79
$ba79 LDX IMMEDIATE instruction_LD16 | $ba79: $ba79-$ba85 - Clears text screen with value in B (CoCo $a92a)
$ba7a read pc word: $0400 from $ba7a
$ba7a addressing 'immediate word' value: $400
$ba7a instruction_LD16 kwargs: ea=$ba7a m=$400 opcode=$8e operand=<X (8-Bit):1026>
$ba7c LD16 set X to $400 | $400: $400-$5ff - Default Text screen
-------------------------------------------------------------------------------
$ba7c read pc byte: $9f from $ba7c
$ba7c STX DIRECT instruction_ST16 | $ba7c: $ba79-$ba85 - Clears text screen with value in B (CoCo $a92a)
$ba7d read pc byte: $88 from $ba7d
$ba7e addressing 'direct': ea = $0 << 8 | $88 = $88
$ba7e get 'direct' byte: ea = m = $88
$88 instruction_ST16 kwargs: ea=$88 m=$88 opcode=$9f operand=<X (8-Bit):1024>
$ba7e ST16 store value $400 from X at $88 | $88: $88-$89 - Current VDU cursor addr (typ 0x0400-0x05ff)
**** write $4 to $88 - mem info:
$4: $4 - Count of IFs looking for ELSE
$88: $88-$89 - Current VDU cursor addr (typ 0x0400-0x05ff)
**** write $0 to $89 - mem info:
$0: $0 - BREAK message flag - if negative print BREAK
$89: $88-$89 - Current VDU cursor addr (typ 0x0400-0x05ff)
-------------------------------------------------------------------------------
$ba7e read pc byte: $e7 from $ba7e
$ba7e STB INDEXED instruction_ST8 | $ba7e: $ba79-$ba85 - Clears text screen with value in B (CoCo $a92a)
$ba7f read pc byte: $80 from $ba7f
$ba80 addressing 'indexed' with postbyte: $80 == 10000000
$ba80 indexed addressing mode ea=$401 | $401: $400-$5ff - Default Text screen
$ba80 get 'indexed' byte: ea = $401 m = $0
$401 instruction_ST8 kwargs: ea=$401 m=$0 opcode=$e7 operand=<B (8-Bit):96>
$ba80 ST8 store value $60 from B at $401 | $401: $400-$5ff - Default Text screen
**** TODO: write $60 '`' to text screen address $401
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment