Prev: EA24 Up: Map Next: EA87
EA31: IRQ vector
EA31 20 EA FF JSR $FFEA increment the real time clock
EA34 A5 CC LDA $CC get the cursor enable, $00 = flash cursor
EA36 D0 29 BNE $EA61 if flash not enabled skip the flash
EA38 C6 CD DEC $CD decrement the cursor timing countdown
EA3A D0 25 BNE $EA61 if not counted out skip the flash
EA3C A9 14 LDA #$14 set the flash count
EA3E 85 CD STA $CD save the cursor timing countdown
EA40 A4 D3 LDY $D3 get the cursor column
EA42 46 CF LSR $CF shift b0 cursor blink phase into carry
EA44 AE 87 02 LDX $0287 get the colour under the cursor
EA47 B1 D1 LDA ($D1),Y get the character from current screen line
EA49 B0 11 BCS $EA5C branch if cursor phase b0 was 1
EA4B E6 CF INC $CF set the cursor blink phase to 1
EA4D 85 CE STA $CE save the character under the cursor
EA4F 20 24 EA JSR $EA24 calculate the pointer to colour RAM
EA52 B1 F3 LDA ($F3),Y get the colour RAM byte
EA54 8D 87 02 STA $0287 save the colour under the cursor
EA57 AE 86 02 LDX $0286 get the current colour code
EA5A A5 CE LDA $CE get the character under the cursor
EA5C 49 80 EOR #%10000000 toggle b7 of character under cursor
EA5E 20 1C EA JSR $EA1C save the character and colour to the screen @ the cursor
EA61 A5 01 LDA $01 read the 6510 I/O port
EA63 29 10 AND #%00010000 mask 000x 0000, the cassette switch sense
EA65 F0 0A BEQ $EA71 if the cassette sense is low skip the motor stop
the cassette sense was high, the switch was open, so turn off the motor and clear the interlock
EA67 A0 00 LDY #$00 clear Y
EA69 84 C0 STY $C0 clear the tape motor interlock
EA6B A5 01 LDA $01 read the 6510 I/O port
EA6D 09 20 ORA #%00100000 mask xx1x xxxx, turn off the motor
EA6F D0 08 BNE $EA79 go save the port value, branch always
the cassette sense was low so turn the motor on, perhaps
EA71 A5 C0 LDA $C0 get the tape motor interlock
EA73 D0 06 BNE $EA7B if the cassette interlock <> 0 don't turn on motor
EA75 A5 01 LDA $01 read the 6510 I/O port
EA77 29 1F AND #%00011111 mask xx0x xxxx, turn on the motor
EA79 85 01 STA $01 save the 6510 I/O port
EA7B 20 87 EA JSR $EA87 scan the keyboard
EA7E AD 0D DC LDA $DC0D read VIA 1 ICR, clear the timer interrupt flag
EA81 68 PLA pull Y
EA82 A8 TAY restore Y
EA83 68 PLA pull X
EA84 AA TAX restore X
EA85 68 PLA restore A
EA86 40 RTI
Prev: EA24 Up: Map Next: EA87