Commodore sayı 63, sayfa 23

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 23

Iny Bne Tsave 3 Inc SAÇ Tsave 3 $2D Lda $2C Sbe $2E Bec Tsavloop

Programın tamamının kaydedilmesi burada yapılıyor.

Lda $FB İsr WrtByt WirtByt

Kontrol toplamını da yazalım ve son biti de kapatalım.

Lda —#$1B Sta $D811 Lda —#$37 Sta $01 Ch Pla Sta $2C Pla Sta $2B Jsr $FF84 ; V/D'u toparla Jmp SA474

bozduğumuz her şeyi toparlayıp, teybi durdurup BASIC'e dönüyoruz.

WrtHdr Lda # $06 ; Basic ROM'u kaldır Sta $01 ; ve teybi çalış- tır Lda #$0B ; ekranı kapat sta Headri Dex ; Teyp tam Bne Headrl ; hızına Dey ; ulaşana kadar Sel Lda ; Bekleme için Sta $DDO4 ; başlangıç Lda #$0A ; timer Sta $DDOS ; değerleri Lda #$19 Sta $DDOE ; Timer'i başlat

Buraya kadar teype yazabilmek için gerekli olan adreslerin değerlerini ayarladık.

Ldy #$40 ; Tekrar sayısı Headr2 Lda ; Senkronizas- yonbaytı İsr WrtByt ;01000000'u yaz Dey Bne Headr 2

teybe 64 defa $40 yaz.

Lda İsr

#$SA HrtByt

; Güvenlik baytı

Güvenlik baytını unutma.

WriByt Sta

Sta Lda

Sta Rol İsr Deo Bne Rts

Wbyte |

$BD ; baytı sakla $EB ; kontro! tepla- mini : hesapla ve sakla # $00 ; yazılacak bit sayısı $A3 $BD WrtBit SA3 Whytel

Teybe bir bayt yazmanın yolu budur işte.

WrtBit Lda Ldx Stx Lda Lta Bit

Wbit 1

Wbit

Beg Lda Bor Sta Inc

Lda Sta Lda Bit Beg Lda EOR - Sta Lda Sta Rts

Wbit 2

#$70 ; bit değeri O kabul et Wbit 1 ; gerçekten de 0 # $FF ; değer 1'miş $DD84 ; Timer'ı ayarla $DDO5S #$01 $DDOD ; Timer'ın bit- 2 mesini Wbit 2 ; bekle $01 ; teybe yazılan # $08 ; voltajı ters $01 ; çevir $DO20 ; Çalıştığını gös- ter #S$DI9 ; Timer'ı gene $DDOE ; çalıştır #$01 $DDOD 3 $01 # $00 $01 #$19 $DDOE

İşte teybe kayıt yapmanın can alıcı kısmı. Eğer yazılacak olan bit 1 ise $FF'den, 0 ise $70'den geriye sayıyoruz (iki kere) ve her sıfırlanışta teybe yollanan voltajın yönünü değiştiriyoruz. Bu sayede değişik boylarda dalgalar yaratabiliyoruz. Rutini terk etmeden hemen önce Timer'ı tekrar çalıştırıyoruz ki arada beklemeden dolayı zaman kaybımız olmasın. Loader de buradan başlıyor. Size önerim, $C13F'de bulunan bu programı incelemeden önce $02AB'ye taşımanızdır, çünkü bu program orada çalışmak üzere tasarlanmış:

Ldy Lda Sta

Loader Biloop

Dey Sel Lda

# $05 # $02 $0450,Y ; Ekranda artan READY'ı ; siliyoruz Biloop $01 ; teyp de çalış-

Klavyeyle gezinmek için ← ve → tuşları.