Pytanie wejściowe brzmi, jak program ma rozpoznać, czy został uruchomiony w trybie natywnym, czy w emulacji. Niby jest bit E rejestru znaczników, więc można tak:
sec
xce
Po tym po bicie C poznajemy, czy tryb był emulacji (C=1) czy natywny. Ale przy okazji robi się przełączenie trybów: z emulacji w natywny, co grozi zwisem, jeśli działamy na XL OS-ie, albo z natywnego w emulację, co z kolei grozi pokasowaniem zawartości rejestrów i zrujnowaniem stosu.
A więc: jak sprawdzić, w jakim trybie jest procesor, bez przełączenia? Wymyśliłem takie coś:
.ab
php
sep #$20
lda #$01
xba
lda #$00
rep #$20
dec
xba
plp
lsr
Po tym, jak C=1, to jest emulacja, a jak C=0 to natywny. Ale to jest trochę długie (14 bajtów, 27 cykli), może ktoś ma pomysł na coś krótszego?
? HEX$(6670358)