Interruptlar Nasıl

Oluşturulur?

Eğer assembler'la interrupt oluşturacaksak şöyle kısa bir örnek verebiliriz. (Aslında interrupt'ları oluşturmanın hemen tek yolu makine dilidir. Ancak okuyucuların çoğunda monitör programı olmadığı, olsa bile kullanmanın zorluğunu düşünerek BASIC'e dönüştürülmüş örnek programlar vermeyi tercih ettik.):

MAKİNE DİLİ PROGRAM

(İNT 4 (M))
(Monitör programıyla
yazılabilir) .
SEl
LDA $20
$C003 STA $0314
$C006 LDA #& $CO
$c008 STA $0315
CLI
$00
$C022 STX DO20STX
$C025 DEX
$C026 BNE $C022
$C028- JMP SEA3A

Programımızda $C020 kodumuzun başlangıç noktası, JMP $EA31'de son yönergemizdir. Bu, interrupt'larla çalışan yazılımlar oluşturmak için standarttır, ancak bazı programcılar bu işlemler sırasında başlangıç için bazı şeyler yapmak isteyebilirler. Bunun teknikleri üzerinde yerimizin sınırı ölçüsünde durmaya çalışacağız. Rutin bellekte 49152 ($C000) adresinde başlamaktadır. Burası BASIC INTERPRETER üzerine yerleştirilmiş bir RAM'dır. Her RAM bölgesi -BASIC ya da SİSTEM DEĞİŞKENLERİ ile çatışma olmaması koşuluyla- kullanılabilir. Bazı bölgeleri belirtelim: $C000(49152)'den $D063(53347)'a: Burası yedek AK RAM'dır. BASIC INTERPRETER üstündeki normal BASIC RAM'ından ayrılmış olduğu için BASIC'ten etkilenmez. BASIC RAM $800(2048)'den $9FFF(40959)'a: Kodumuz bu adreslerde BASIC RAM'ın üstüne yerleştirilecektir. Ancak korumazsak