Atari Assembler Editör - Atari Assembler Editor

Atari Assembler Editör
Orijinal yazar (lar)Kathleen O'Brien
Geliştirici (ler)Shepardson Microsystems
İlk sürüm1981; 39 yıl önce (1981)
PlatformAtari 8 bit
Boyut8 KB
TürMontajcı
LisansTescilli yazılım

Atari Assembler Editör (bazen şu şekilde yazılır Atari Assembler / Editör) bir kartuş düzenleme için kullanılan tabanlı geliştirme sistemi, birleştirmek, ve hata ayıklama 6502 program Atari 8-bit ailesi ev bilgisayarları. O Kathleen O'Brien tarafından programlanmıştır. Shepardson Microsystems, yazan şirket Atari TEMEL ve Assembler Editor bu dille birçok tasarım konseptini paylaşır.

Montaj süreleri yavaştır ve kartuşun daha büyük programlar için kullanımını zorlaştırır. Kılavuzda Atari, Assembler Editor'ı hızlandırmak için alt yordamlar yazmak için bir araç olarak önerdi. Atari TEMEL.[1] Atari Macro Assembler, makrolar gibi daha iyi performans ve daha güçlü özelliklerle bir alternatif olarak sunuldu, ancak disk tabanlıydı, kopya korumalı ve bir düzenleyici veya hata ayıklayıcı içermiyordu. Öneriye rağmen, oyunlar gibi ticari yazılımlar Assembler Editor kullanılarak yazılmıştır. Doğu Cephesi (1941),[2] Galahad ve Kutsal Kase,[3] ve Kid Grid.[4]

kaynak kodu Orijinal Assembler Editörüne lisans verildi Optimize Edilmiş Sistem Yazılımı kim gönderdi EASMD buna göre.

Tarih

Assembler Editörü, Kathleen O'Brien tarafından yazılmıştır. Shepardson Microsystems. Şirket, uyum sağlamasına yardımcı olması için Atari tarafından işe alınmıştı. Microsoft 6502 TEMEL 8KB'ye ROM Atari'deki programcıların mücadele ettiği bir şey. Bunun yerine Bill Wilkinson, BASIC'in tamamen yeni bir versiyonunu tasarlamayı önerdi. Atari TEMEL.[5]

Atari BASIC, öncelikle O'Brien'ın kocası Paul Laughton tarafından yazılırken, O'Brien, Assembler Editörü üzerinde çalıştı.[5] Assembler Editor, kodları bir zımba bandı makine, bandı bir EPROM yazıcı ve ardından ortaya çıkan ROM'u bir Atari 800. Kartuş Atari BASIC'den önce tamamlandı ve O'Brien da bu projenin bazı kısımları üzerinde çalışmak için biraz zaman harcadı.[5]

Shepardson'ın Atari üzerindeki çalışmasının bir parçası olarak, bir dizi ortak rutin Atari'nin işletim sistemi. Bunlar şunları içeriyordu kayan nokta O'Brien'ın yazmakla görevlendirildiği rutinler, ancak daha önce böyle bir kod üzerinde çalışmamıştı.[5] Bu rutinlerin, Wilkinson'ın sık sık yazdığı bir konu olan, herkesin bildiği gibi yavaş olduğu düşünülüyordu.[6]

Detaylar

Assembler Editörü iki geçiş 6502 montajcı bir 8KB kartuş. Hem kaynak hem de nesne kodu eşzamanlı olarak bellekte olabilir ve sonuçta ortaya çıkan kodun bir diske veya teyp sürücüsüne erişmeden tekrar tekrar düzenlenmesine, birleştirilmesine ve çalıştırılmasına izin verir.[7]

Düzenle

Kartuş EDIT modunda başlar. Programcı montaj hatlarına girer kaynak içine Atari TEMEL -sevmek editör. Kaynak metne bir satır numarası eklenmeli veya bir komut olarak yorumlanmalıdır. Atari BASIC gibi, Assembler Editörü bir GİRİŞ Dosyaları tek bir büyük program listesinde birleştirmek için kullanılabilen komut. Atari BASIC'ten farklı olarak, Assembler Editor, otomatik olarak aralıklı satır numaraları oluşturmanın yanı sıra satırları yeniden numaralandırmak ve silmek için bir dizi komut içeriyordu. toplu halde. Editörde ayrıca BUL komut, etiketlerle çalışırken çok kullanışlıdır.[8]

Talimatlar, hafızaya yerleştirilecekleri sıraya göre listelenir. Talimatlar için başlangıç ​​noktası, *= talimat, bu nedenle, örneğin, özel "altıncı sayfa" alanına yerleştirilmesi amaçlanan kodun önüne satır *= $0600.[9] Değişken isimleri, belirli yerleri işaret edecek şekilde atanabilir ve bu genellikle bir artışla birleştirilirdi *= *+1 ofsetleri doğrudan tablolara kodlamak için.[10]

Talimatları izleyen değerler normalde "bu bellek adresindeki değer" olarak yorumlanır, ancak gerçek bir sayısal değer, bir karma ile eklenerek "anlık işlenen" olarak sağlanabilir, örneğin LDA # 12, akümülatörü 12 ondalık değeriyle yükler. Onaltılık bir dolar işaretiyle, LDA # 12 $ akümülatörü 12 hex veya 18 ondalık sayı ile yükler. Dolaylı adresleme parantez kullanılarak desteklenmiştir; LDA (600 ABD doları) 16 bitlik bir adres üretmek için 600 $, 601 $ konumundaki değerleri kullanır ve daha sonra bu konumda bulunan değer ile toplayıcıyı yükler.[11]

Hatalar, sayısal hata kodlarıyla, toplamda bu türden yaklaşık 50 kodla rapor edilir.[12]

Birleştirmek

Kod herhangi bir zamanda yazarak bir araya getirilebilir. ASM editöre komut verin.[13]

Assembler Editor, platformdaki en yavaş montajcı olarak geniş çapta alay edildi. Bunun çoğu, editör kodunun çoğunu Shepardson Microsystems tarafından da yazılmış olan Atari BASIC ile paylaşmasından kaynaklanıyordu. Atari BASIC, koddaki sayısal sabitleri dahili bir gösterime dönüştürmek için kullanılan çok yavaş rutinlerle ünlüydü. ikili kodlu ondalık Atari'deki (BCD) rutinleri işletim sistemi. Bu, tüm sayıların, hatta satır numaralarının BCD'ye dönüştürülmesi gerektiği anlamına geliyordu. İşin garibi, bunun anlamı da 1E2 yasal bir satır numarasıydı.[14]

Hata ayıklama

hata ayıklayıcı, gerçekten bir monitör ile girilir HATA komut.[15] X komut EDIT moduna geri döner.[16] Hata ayıklayıcı, görüntülemeye ve değiştirmeye izin verir kayıtlar ve bellek konumları, kod izleme, tek adımlı ve sökme.[17]

Örnek kod

Aşağıdakiler için 6502 kodu Selam Dünya! Assembler Editörü için yazılmıştır:

10 ; HELLO.ASM20 ; ---------30 ;40 ; BU ATARI MONTAJ PROGRAMI50 ; "MERHABA DÜNYASINI" YAZDIRACAK60 ; EKRANA MESAJ70 ;0100 ; CIO EQUATES0110 ; ===========0120     *=  $0340   ; IOCB BAŞLANGICI0130 IOCB0140 ;0150 ICHID *= *+1    ; CİHAZ İŞLEVCİSİ0160 ICDNO *= *+1    ;CİHAZ NUMARASI0170 ICCOM *= *+1    ; G / Ç KOMUTU0180 ICSTA *= *+1    ; G / Ç DURUMU0190 ICBAL *= *+1    ; LSB BUFFER ADDR0200 ICBAH *= *+1    ; MSB TAMPON ADRESİ0210 ICPTL *= *+1    ; LSB PUT RUTİNİ0220 ICPTH *= *+1    ; MSB PUT RUTİNİ0230 ICBLL *= *+1    ; LSB TAMPON UZUNLUĞU0240 ICBLH *= *+1    ; MSB TAMPON UZUNLUĞU0250 ICAX1 *= *+1    ; AUX BYTE 10260 ICAX2 *= *+1    ; AUX BYTE 10270 ;0280 GETREC = 5      ; METİN KAYDI AL0290 PUTREC = 9      ; PUT METİN KAYDI0300 ;0310 CIOV =  $ E456   ; CIO GİRİŞ VEKTÖRÜ0320 RUNAD = $ 02E0   ; ADRESİ ÇALIŞTIR0330 EOL   = 9 Milyar $     ;YOLUN SONU0340 ;0350 ; CIO İÇİN KURULUM0360 ; -------------0370     *= $06000380 BAŞLAT LDX #0    ; IOCB 00390     LDA #PUTREC ; ÇIKTI İSTİYORUM0400     STA ICCOM,X ; SORUN CMD0410     LDA #MSG&255 ; MSG'NİN DÜŞÜK BYTE0420     STA ICBAL,X ; ICBAL'E0430     LDA #MSG/256 ; YÜKSEK BYTE0440     STA ICBAH,X ; ICBAH'A0450     LDA #0      ; MSG UZUNLUĞU0460     STA ICBLH,X ; YÜKSEK BYTE0470     LDA #$ FF    ; 255 KAR UZUNLUĞU0480     STA ICBLL,X ; DÜŞÜK BYTE0490 ;0500 ; YAZDIRMAK İÇİN CIO'YU ARAYIN0510 ; -----------------0520     JSR CIOV    ; CIO'YU ARAYIN0530     RTS         ; DOS'A ÇIKIŞ0540 ;0550 ; MESAJIMIZ0560 ; -----------0570 MSG .BAYT "SELAM DÜNYA!",EOL0580 ;0590 ; INIT RUN ADRESİ0600 ; ----------------0610     *=  RUNAD0620     .WORD BAŞLAT0630     .SON

Bu komutlar, kodu birleştirmek, hata ayıklayıcıya girmek, programı çalıştırmak ve bittiğinde hata ayıklayıcıdan çıkmak için etkileşimli olarak girilebilir:

ASMBUGG600X

Eski

Shepardson, Assembler Editörü ve Atari BASIC'i Atari'ye teslim ettikten kısa bir süre sonra, sahibi Bob Shepardson, tek kişilik bir şirket olmaya geri dönmeye karar verdi.[18] O'Brien, Laughton ve Wilkinson kendi şirketlerini kurdular. Optimize Edilmiş Sistem Yazılımı (OSS), Atari ürünlerinin geliştirilmesine devam etmek için. Orijinali lisansladılar kaynak kodu BASIC, Assembler Editörü ve Atari DOS, toplu olarak yazdıkları.[19]

1981'de OSS, Assembler Editor'ün geliştirilmiş bir sürümünü yayınladı. EASMD açık disket. EASMD'nin yerini MAC / 65 MAC / 65, platformdaki en hızlı montajcılardan biriydi.[14] MAC / 65'in iyileştirilmiş performansının çoğu, kod satırlarının girildikçe tokenleştirilmesinin sonucudur - Atari BASIC'de olduğu gibi - montaj sırasında gereken iş miktarını azaltmak için.[7]

Assembler Editor, Atari'de bulunmaya devam etti ve fiyat düştüğü için popülaritesi arttı. ABD$ 1980'lerin ikinci yarısında 10 veya 5 dolar.[20]

Ayrıca bakınız

Referanslar

Alıntılar

  1. ^ Manüel 1981, s. 63.
  2. ^ Crawford, Chris (1982). Doğu Cephesi Kaynak Kodu (1941). ATARI Program Değişim.
  3. ^ Crockford, Douglas (1982). Galahad ve Kutsal Kase Kılavuzu (PDF). ATARI Program Değişim.
  4. ^ Ellison, Peter (Nisan 1984). "Röportaj: Arti Harutyunyan". ROM (5): 8.
  5. ^ a b c d Röportaj 2015.
  6. ^ Wilkinson, Bill (Şubat 1985). "GÖRÜŞ: Atari". Hesapla!. s. 139.
  7. ^ a b Lahey 2009.
  8. ^ Manüel 1981, s. 15.
  9. ^ Manüel 1981, s. 7,31.
  10. ^ Manüel 1981, s. 31.
  11. ^ Manüel 1981, s. 10-12.
  12. ^ Manüel 1981, s. 43-44.
  13. ^ Manüel 1981, s. 25.
  14. ^ a b Wetmore 1983, s. 29.
  15. ^ Manüel 1981, s. 35.
  16. ^ Manüel 1981, s. 41.
  17. ^ Manüel 1981, s. 35-41.
  18. ^ Wilkinson 1982, s. vi.
  19. ^ Wilkinson 1982, s. vi-vii.
  20. ^ Ratcliff, Matthew (20 Kasım 1989). "Atari Assembler Editör Referansı".

Kaynakça

Dış bağlantılar