Ktos mnie zmusil do odgrzebania starych dyskietek i wczytania Frodo...
>:chodzi mi o mozliwie najprostsza procedure w kodzie maszynowym pozwalajaca poruszac ":duszkiem": po
calym ekranie i zwracajaca jakas wartosc pod jakims adresem kiedy zostanie wcisniety klawisz myszki.
Ponizsza procedure wolasz sobie w odpowiednim IRQ. Do sterowania ":duszkiem": najlepiej w rastrowym,
przynajmniej raz na raster. Format oczywiscie ze starego, dobrego MacroAssemblera (nie jestem w stanie
docenic TurboAssemblera)
:MOUSE
CLD
LDA $D419
LDY OPOTX
JSR MOVCHK
STY OPOTX
CLC
ADC XPOS
STA XPOS
TXA
ADC #$00
AND #$01
EOR XPOSMSB
STA XPOSMSB
LDA $D41A
LDY OPOTY
JSR MOVCHK
STY OPOTY
SEC
EOR #$FF
ADC YPOS
STA YPOS
RTS
: MOVCHK
STY OLDVALUE
STA NEWVALUE
LDX #$00
SEC
SBC OLDVALUE
AND #$7F
CMP #$40
BCS L50
LSR
BEQ L80
LDY NEWVALUE
RTS
: L50
ORA #$C0
CMP #$FF
BEQ L80
SEC
ROR
LDX #$FF
LDY NEWVALUE
RTS
: L80
LDA #$00
RTS
: OLDVALUE B $00
: NEWVALUE B $00
: XPOS B $00
: YPOS B $00
: XPOSMSB B $00
: OPOTX B $00
: OPOTY B $00
>:
>:wartosci ktorych adresow zmieniaja sie, kiedy poruszam mycha w rozne strony lub kiedy wciskam
przycisk? jak sie zmieniaja?
XPOS, XPOSMSB, YPOS - tam mozesz odczytac pozycje ":duszka":. Przyciski sa dostepne bezposrednio
na porcie CIA. Stamtad je sobie odczytasz.