ZX Spectrum karakter seti - ZX Spectrum character set
ZX Spectrum karakter kümesi varyantı olan ASCII İngiliz kullanılan Sinclair ZX Spectrum aile bilgisayarlar. ASCII-1967'ye dayanmaktadır ancak ^, ` ve karakterleri DEL
↑, £ ve © ile değiştirilmiştir. Ayrıca , ortak ve dışındaki C0 kontrol kodlarını kullanımında farklılık gösterir ve ASCII aralığının ötesinde 128 yüksek bit karakteri kullanır. ZX Spectrum'un ana yazdırılabilir karakter seti ve sistem yazı tipi de Jupiter Ace bilgisayarı tarafından kullanılmaktadır .
BS
CR
Yazdırılabilir karakterler
Standart US-ASCII, 0x20–0x7F, 0x5E kod noktasının şapka (^) yerine yukarı ok (↑) olması, 0x60'ın ciddi vurgu yerine pound işareti (£) olması dışında Spektrum karakter kümesine dahildir (`) ve 0x7F, kontrol karakteri yerine telif hakkı işaretidir (©) . 0x5E'nin ↑ olarak kullanılmasının, ASCII'nin eski 1963 sürümünde de geçerli olduğunu unutmayın. £ işareti, ASCII'nin ( ISO-646-GB ) İngiliz varyantında olduğu gibi 0x23 ile eşlenmedi ve hem pound işaretine hem de sayı işaretine (#) aynı anda izin verdi. ↑ karakteri, Spectrum'un BASIC'indeki üs alma operatörüdür , tıpkı ASCII-1967'ye kıyasla yerini aldığı ^ gibi, BASIC'in diğer birçok lehçesinde ve diğer programlama dillerinde üs alma için kullanılır.
DEL
0x7F'nin ötesinde, Spektrum karakter seti, özel amaçlar için 0x80–0xFF yüksek bit aralığını kullanır. 0x80–0x8F , ZX80 karakter seti ve ZX81 karakter seti (diğer konumlarda) ile aynı 2×2 blok grafik karakterlerini içerir , ayrıca Blok Öğeleri Unicode bloğunda da mevcuttur . Ancak ZX Spectrum'un standart karakter seti, ZX80/81 %50 titrek 1×2 blok grafik karakterlerini içermez . 0x90–0xA4 kod noktaları, orijinal olarak 21 Kullanıcı Tanımlı Grafik (UDG) karakteri içerir ve 0xA5–0xFF, tek kod noktaları olarak belirtilmiş BASIC anahtar sözcüklerini içerir. Daha sonra tanıtılan 128 BASIC modunda, bu, 0xA2 ile biten 19 UDG karakteri ve ardından iki yeni belirteç ve . Kod 0xC7-0xC9 iki karakterlik operatörleri işaret , ve benzer şekilde tek bir kod noktalarını içine simgeleþtirilmiþ. Bu belirteçler , 0xF6 oluşturan bir satırın başında (yani komut modunda) tek tuşa basılarak girilmesine benzer bir BASIC komutuna izin verir . Bu, ekranda tam anahtar sözcük olarak görüntülenir, ancak yalnızca tek bir bayt belirteci depolanır, bu nedenle yalnızca tek baytın yorumlayıcı tarafından ayrıştırılması veya teyp gibi harici depolamaya kaydedilmesi/yüklenmesi gerekir.
SPECTRUM
PLAY
<=
>=
<>
PRINT
PPRINT
UDG Spectrum olmayan tüm karakterler Unicode ile eşlenebilir . ASCII-1967 olmayan üç karakter ↑, £ ve © U+2191, U+00A3 ve U+00A9'dadır. 2×2 blok grafik karakterleri , U+2580–U+259F'deki Blok Öğeleri bloğundadır, ancak ikincisi için yazı tipi desteği evrensel değildir.
UDG karakterlerinin şekli bir RAM bellek alanına eşlenir ve AU karakterlerinin kopyalarına başlatılır, ancak örneğin BASIC komutu kullanılarak keyfi olarak yeniden tanımlanabilir POKE
. Sistem yazı tipindeki tüm karakterler gibi, 8 baytta saklanan 8×8 piksel ızgara kullanırlar. Bunları yeniden tanımlamak sonraki PRINT
ifadelerdeki görünümlerini değiştirir ancak ekranda önceden çizilmiş olan UDG karakterlerini değiştirmez. Bir UDG karakterinin tanımının konumu USR
, argüman olarak karakter ile BASIC işleviyle belirlenebilir , örneğin USR "A"
ilki için. Varsayılan olarak bu, 48K Spektrum için 65368 (0xFF58) ila 65535 (0xFFFF) bellek adreslerinde son 168 (21×8) bayt RAM'e işaret eder. Konum, 23675/6 (0x5C7B/C) bellek adresinde bulunabilen ve değiştirilebilen sistem değişkeni UDG tarafından belirtilir. TK90X , ZX Spectrum bir Brezilyalı klonu işlevselliği ile birlikte bu UDG karakterler, Portekizce kullanılan aksanlı harflerle sonra önceden yüklemek için grafiksel düzenlemeye bir ROM uygulama dahil. (Bunun için TK90X, sırasıyla "trace" ve "udg" olmak üzere 0 ve 1 kodlarında iki ekstra Temel komut tanımladı)
32 (boşluk) ila 127 (telif hakkı) arasındaki ana sistem yazı tipinin tanımına, 23606/7 (0x5C36/7) bellek adresinde bulunabilen CHARS sistem değişkeni tarafından başvurulur. Boşluk karakterinin ilk baytından 256 bayt daha düşük olarak tanımlanır ve bir karakteri CHARS+8× kod noktasına yerleştirme formülünü basitleştirir . CHARS değeri varsayılan olarak 15360 (0x3C00) değerine ayarlanır ve sistem yazı tipi Spectrum ROM'unun sonunda 15616 (0x3D00) ila 16383 (0x3FFF) adresindedir. Tüm alternatif yazı tipleri RAM'e yüklenebilir ve CHARS değişkeni buna göre yeniden işaretlenebilir.
Kontrol kodları
Kontrol kodları alanında (C0 aralığı), Spectrum çoğunlukla ön plan ve arka plan rengini kontrol etmek için MÜREKKEP ve KAĞIT gibi tescilli kontrolleri kullanır. Ancak, ortak BS
ve CR
kod noktaları ASCII'deki ile aynıdır. İmleç aşağı (0x0A, ASCII Satır Besleme), OVER 1 (şeffaf üst baskı) ile yazdırılan 32 boşluk ile simüle edilebilir ve imleç yukarı 0x0B (ASCII Dikey Tablo) 32 geri boşluk ile simüle edilebilir. Sistem ROM'unda, 0x09'da (cf ASCII Yatay Tablolama) sağ imlecin çalışmasını engelleyen bir hata var.
Kontrol kodu 0x0E, metin işlemeyi hızlandırmak için bir kayan noktalı sayının ardından geldiğini belirtmek için kullanılır. Bir Sinclair BASIC programında sayısal sabitler, ASCII ve ardından bir 0x0E bayt ve 5 baytlık ikili kayan nokta gösterimi olarak depolanır. Bir BASIC programı listelenirken yalnızca ASCII kısmı kullanılır, ancak çalışma zamanında yalnızca ikili gösterim kullanılır. Bazı Spektrum programları, sayıları gizlemek için bundan yararlanırken, diğerleri bunu bellekten tasarruf etmek için yaptı. Örneğin, görüntülenen bir BASIC satırı, GO TO 10
1 ve 0 rakamları için ASCII karakterlerini, ardından bir 0x0E baytı ve 10 yerine 100'ün kayan nokta gösterimini içerebilir. Bu programı listeleyen herkes 10 sayısını gördü, ancak program çalıştırıldığında atladı. 100. satıra kadar.
tanımsız kodlar
0x00–0x05, 0x07, 0x0A–0x0C, 0x0F ve 0x17–0x1F aralıkları tanımsızdır. Çoğu durumda, ekrana yazdırılırsa bir soru işareti oluştururlar. Ancak, belirli kontrol kodlarıyla bağlantılı olarak gerçek sayısal değerlerini temsil etmek için kullanılabilirler: örneğin, 0x10 + 0x07, mürekkebin (ön plan metni) rengini 7 numaralı renk (beyaz) olarak ayarlar.
Karakter seti
Spektrum Karakter Seti | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ tuşa basma | 0_ karakter | 1_ | 2_ | 3_ | 4_ | 5_ | 6_ | 7_ | 8_ | 9_ | bir_ | B_ | C_ | D_ | E_ | F_ | |
_0 | MÜREKKEP | 0 | @ | P | £ | p | (A) | (S) | VAL | USR | BİÇİM | LPRINT | LİSTE | ||||
_1 | KAĞIT | ! | 1 | bir | S | bir | q | (B) | (R) | UZUNLUK | STR$ | HAREKET | LİSTE | İZİN VERMEK | |||
_2 | FLAŞ | " | 2 | B | $ | b | r | (C) | (S) | GÜNAH | CHR$ | SİL | DUR | DURAKLAT | |||
_3 | PARLAK | # | 3 | C | S | c | s | (D) | (T) | çünkü | DEĞİL | AÇIK # | OKUYUN | SONRAKİ | |||
_4 | gerçek video | TERS | $ | 4 | D | T | d | t | (E) | (U) | TAN | ÇÖP KUTUSU | KAPAT # | VERİ | POKE | ||
_5 | yeni video | BİTMİŞ | % | 5 | E | sen | e | sen | (F) | RND | ASN | VEYA | BİRLEŞTİRMEK | ONARMAK | YAZDIR | ||
_6 | büyük harf kilidi | virgül | AT | & | 6 | F | V | f | v | (G) | İNKEY$ | ACS | VE | DOĞRULAYIN | YENİ | ARSA | |
_7 | Düzenle | SEKME | ' | 7 | G | W | g | w | (H) | PI | ATN | <= | BİP | SINIR | ÇALIŞTIRMAK | ||
_8 | ayrıldı | ayrıldı | ( | 8 | H | X | h | x | (BEN) | FN | LN | >= | DAİRE | DEVAM ET | KAYIT ETMEK | ||
_9 | sağ | sağ | ) | 9 | ben | Y | ben | y | (J) | NOKTA | tecrübe | <> | MÜREKKEP | DİM | RANDOMİZE | ||
_A | aşağı | * | : | J | Z | j | z | (K) | EKRAN$ | INT | HAT | KAĞIT | REM | EĞER | |||
_B | yukarı | + | ; | K | [ | k | { | (L) | ATTR | kare | SONRA | FLAŞ | İÇİN | CLS | |||
_C | silmek | , | < | L | \ | ben | | | (M) | AT | SGN | KİME | PARLAK | GİT | ÇİZMEK | |||
_D | giriş | giriş | - | = | M | ] | m | } | (N) | SEKME | ABS | ADIM | TERS | ALT GİT | AÇIK | ||
_E | uzatmak | numara | . | > | N | ↑ | n | ~ | (Ö) | VAL$ | DİKİZLEMEK | DEF FN | BİTMİŞ | GİRİŞ | DÖNÜŞ | ||
_F | grafik | / | ? | Ö | _ | Ö | © | (P) | KOD | İÇİNDE | KEDİ | DIŞARI | YÜK | KOPYALA |
Ayrıca bakınız
Notlar
Referanslar
Dış bağlantılar
- Michael Zaretski'nin web sitesinden Sinclair Spectrum+ 48K Karakter Seti
- Sinclair Spectrum+ 48K Karakter Setinden Unicode'a Eşleme tablosu Aynı siteden
- kayan nokta paketi