EBCDIC - EBCDIC

EBCDIC kodlama ailesi
sınıflandırma 8 bitlik temel Latin kodlamaları (ASCII olmayan)
Öncesinde BCD

Uzatılmış ikili kodlanmış ondalık değişim kodu ( EBCDIC ; / ɛ b s ɪ d ɪ k / ) bir sekiz olan bit karakter kodlamasını esas kullanılan IBM mainframe ve IBM orta bilgisayar işletim sistemleri. Bu birlikte kullanılan kodun soyundan delikli kartlarla ve ilgili altı bitlik ikili kodlanmış ondalık IBM'in çoğu kullanılan kodun bilgisayar çevre birimleri 1950'lerin sonlarında ve 1960'ların arasında. Bu gibi çeşitli IBM dışı platformlar tarafından desteklenen Fujitsu-Siemens ' BS2000 / OSD , OS IV, MSP ve MSP-EX, SDS Sigma serisi , Unisys VS / 9 Unisys MCP ve ICL VME .

Tarih

1964 EBCDIC karakter setinin Hollerith kodlamasına sahip delikli kart . Üst kısımdaki kontrast, yazdırılan karakterleri gösterecek şekilde geliştirildi.

EBCDIC, 1963 ve 1964'te IBM tarafından tasarlandı ve IBM System/360 serisi ana bilgisayar bilgisayarlarının piyasaya sürülmesiyle duyuruldu . Yedi bitlik ASCII kodlama şemasından ayrı olarak geliştirilen sekiz bitlik bir karakter kodlamasıdır . Mevcut İkili Kodlu Ondalık (BCD) Değişim Kodunu veya BCDIC'yi genişletmek için oluşturuldu ve kendisi delikli kartlardaki iki bölge ve sayı zımbalarını altı bite kodlamanın etkili bir yolu olarak tasarlandı . 's' ve 'S'nin farklı kodlaması (1 yerine konum 2 kullanılarak) fiziksel kartın bütünlüğünü sağlamak için birbirine çok yakın delgeçlere sahip olmamanın istendiği yerlerde delikli kartlardan korunmuştur .

IBM, ASCII standardizasyon komitesinin baş savunucusuyken, şirketin System/360 bilgisayarlarıyla birlikte gönderilmek üzere ASCII çevre birimlerini (kart delme makineleri gibi) hazırlamak için zamanı yoktu, bu nedenle şirket EBCDIC'e karar verdi. System/360, RCA Spectra 70 , ICL System 4 ve Fujitsu FACOM gibi klonlarla birlikte çılgınca başarılı oldu ve EBCDIC de öyle.

Tüm IBM anabilgisayar ve orta düzey çevre birimleri ve işletim sistemleri , kendi doğal kodlamaları olarak EBCDIC'yi kullanır (ASCII toleransıyla, örneğin z/OS'de ISPF , hem EBCDIC hem de ASCII kodlu dosyalara göz atabilir ve bunları düzenleyebilir). Yazılım ve birçok donanım çevre birimi, kodlamalara ve kodlamalardan çeviri yapabilir ve modern ana bilgisayarlar ( IBM Z gibi ), karakter kümeleri arasındaki çeviriyi hızlandırmak için donanım düzeyinde işlemci yönergelerini içerir.

Unicode konsorsiyumu tarafından önerilen, EBCDIC yazılımının Unicode'u işlemek üzere kolayca güncellenmesine izin vermek üzere tasarlanmış, ancak açık değişim ortamlarında kullanılması amaçlanmayan UTF-EBCDIC adlı bir EBCDIC odaklı Unicode Dönüşüm Formatı vardır . Kapsamlı EBCDIC desteğine sahip sistemlerde bile popüler olmamıştır. Örneğin, z/OS Unicode'u destekler ( özellikle UTF-16'yı tercih eder), ancak z/OS yalnızca UTF-EBCDIC için sınırlı desteğe sahiptir.

Tüm IBM ürünleri EBCDIC kullanmaz; IBM AIX , Linux on IBM Z ve Linux on Power, tümü ASCII kullanır.

ASCII ile uyumluluk

Hem ASCII hem de EBCDIC'de çalışacak yazılım yazmanın birçok zorluğu vardı.

  • Harfler arasındaki boşluklar, ASCII'de çalışan basit kod EBCDIC'de başarısız oldu. Örneğin , ASCII kullanılıyorsa alfabeyi A'dan Z'ye yazdırır, ancak EBCDIC'de 41 karakter (bir dizi atanmamış olanlar dahil) yazdırır. Bunu düzeltmek, programcılar tarafından büyük ölçüde direnilen fonksiyon çağrılarıyla kodu karmaşık hale getirmek zorundaydı.for (c = 'A'; c <= 'Z'; ++c) putchar(c);
  • EBCDIC'yi sıralamak, ASCII'nin tam tersi olarak küçük harfleri büyük harflerin önüne ve harfleri sayıların önüne koyar.
  • ASCII için tasarlanmış programlama dilleri ve dosya biçimleri ve ağ protokolleri, EBCDIC'de bulunmayan mevcut noktalama işaretlerini (örneğin küme parantezleri { ve } gibi ) hızla kullanmaya başladı ve EBCDIC sistemlerine çeviri yapmayı zorlaştırdı. Tersine EBCDIC , IBM sistemlerinde kullanılan ve ASCII'ye çevrilemeyen ¢ ( ABD cent ) gibi birkaç karaktere sahipti .
  • EBCDIC ile kullanılan en yaygın yeni satır kuralı, satırlar arasında bir NEL (SONRAKİ SATIR) kodu kullanmaktır . Diğer kodlamalara dönüştürücüler , hedef kodlamada bir NEL olsa bile, genellikle NEL'yi LF veya CR/LF ile değiştirir . Bu, LF ve NEL'nin aynı karaktere çevrilmesine ve ayırt edilememesine neden olur.
  • Yedi bitlik ASCII kullanılmışsa, 8 bitlik baytlarda "kullanılmayan" bir yüksek bit vardı ve birçok yazılım parçası orada başka bilgiler depoladı. Yazılım aynı zamanda yedi biti paketler ve sekizinciyi atar, örneğin beş yedi bitlik ASCII karakterini 36 bitlik bir kelimede paketlemek gibi . On PDP-11 yüksek bit kümesiyle bayt negatif sayılar, kopyalanan bir davranış olarak tedavi edildi C yüksek bit kurulmuştur beklenmedik sorunlara yol. Bunların tümü, ASCII'den 8-bit EBCDIC'ye geçişi zorlaştırdı (ve ayrıca 8-bit genişletilmiş ASCII kodlamalarına geçişi de zorlaştırdı ).

Kod sayfası düzeni

Orijinal EBCDIC karakter kodlamasına dayalı yüzlerce EBCDIC kod sayfası vardır; Çince, Japonca (örn., EBCDIC 930, JEF ve KEIS), Korece ve Yunanca (EBCDIC 875) gibi Latince olmayan komutlar için kod sayfaları da dahil olmak üzere dünyanın farklı yerlerinde kullanılması amaçlanan çeşitli EBCDIC kod sayfaları vardır. ). Harflerin fark edilebilir bir sebep olmadan değiştirildiği çok sayıda varyasyon da vardır.

Aşağıdaki tablo , Latin alfabesini kullanan tüm EBCDIC kod sayfalarında aynı atamalara sahip olması gereken karakterler olan EBCDIC'nin "değişmeyen alt kümesini" göstermektedir . Ayrıca, Kod Sayfası 37'de (EBCDIC'nin kod sayfası türevlerinden biri) bulundukları yerde (gri olarak) eksik ASCII ve EBCDIC noktalama işaretlerini gösterir . Boş hücreler, varyantlarda bölgeye özgü karakterlerle doldurulur, ancak gri renkli karakterler de sıklıkla değiştirilir veya değiştirilir. Her hücrede ilk satır, bir kontrol kodunun veya karakterin kendisinin kısaltmasıdır; ve ikinci satır Unicode kodudur (Unicode'da mevcut olmayan kontroller için boştur).

EBCDIC
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _NS _E _F
0_ SIFIR
0000
SOH
0001
STX
0002
ETX
0003
SEL
 
HT
0009
RNL
 
DEL
007F
GE
 
SPS
 
RPT
 
VT
000B
FF
000C
CR
000D
SO
000E
SI
000F
1_ DLE
0010
DC1
0011
DC2
0012
DC3
0013
res/enp
 
NL
0085
BS
0008
POC
 
CAN
0018
EM
0019
UBS
 
CU1
 
IFS
001C
IGS
001D
IRS
001E
ius / itb
001F
2_ DS
 
s.o.s.
 
FS
 
WUS
 
byp/inp
 
LF
000A
ETB
0017
ESC
001B
SA
 
SFE
 
sm/sw
 
CSP
 
MFA
 
ENQ
0005
ACK
0006
BEL
0007
3_ SYN
0016
kızılötesi
 
PP
 
KKTC
 
NBS
 
EOT
0004
SBS
 
O
 
ARFF
 
CU3
 
DC4
0014
NAK
0015
ALT
001A
4_ SP
0020
¢
00A2
.
002E
<
003C
(
0028
+
002B
|
007C
5_ &
0026
!
0021
0024 $
*
002A
)
0029
;
003B
¬
00AC
6_ -
002D
/
002F
¦
00A6
,
002C
%
0025
_
005F
>
003E
?
003F
7_ `
0060
:
003A
#
0023
@
0040
'
0027
=
003D
"
0022
8_ bir
0061
b
0062
c
0063
d
0064
e
0065
f
0066
g
0067
saat
0068
ben
0069
±
00B1
9_ j
006A
k
006B
l
006C
m
006D
n
006E
o
006F
p
0070
q
0071
r
0072
A_ ~
007E
s
0073
t
0074
u
0075
v
0076
ağırlık
0077
x
0078
y
0079
z
007A
B_ ^
005E
[
005B
]
005D
C_ {
007B
bir
0041
B
0042
C
0043
D
0044
E
0045
F
0046
G
0047
H
0048
ben
0049
NS_ }
007D
J
004A
K
004B
L
004C
M
004D
N
004E
O
004F
P
0050
Q,
0051
R,
0052
E_ \
005C
S
0053
T
0054
U
0055
V
0056
B
0057
X
0058
Y
0059
Z
005A
F_ 0
0030
1
0031
2
0032
3
0033
4
0034
5
0035
6
0036
7
0037
8
0038
9
0039
EO
 

  Mektup  Sayı  Noktalama  Sembol  Başka  Tanımsız

ASCII olmayan EBCDIC kontrollerinin tanımları

ASCII kontrol karakterleriyle eşleşmeyen veya ek kullanımları olan EBCDIC kontrol karakterlerinin tanımları aşağıdadır . Unicode ile eşlendiğinde, bunlar çoğunlukla IBM'in Karakter Veri Temsil Mimarisi (CDRA) tarafından belirtilen bir şekilde C1 kontrol karakteri kod noktalarına eşlenir.

Yeni Satırın (NL) varsayılan eşlemesi ISO/IEC 6429 Sonraki Satır (NEL) karakterine karşılık gelse de (davranışı Unicode Ek 14'te de belirtilmiş, ancak gerekli değildir), bu C1 eşlemeli kontrollerin çoğu eşleşir. ne ISO/IEC 6429 C1 setindekiler ne de ISO 6630 gibi diğer kayıtlı C1 kontrol setlerindekiler . Bu, ASCII olmayan EBCDIC kontrollerini etkin bir şekilde benzersiz bir C1 kontrol seti yapsa da, bunlar ISO-IR kayıt defterinde kayıtlı C1 kontrol setleri arasında değildir , yani atanmış bir kontrol seti atama dizisine sahip değildirler ( ISO/ tarafından belirtildiği gibi). IEC 2022 ve isteğe bağlı olarak ISO/IEC 10646'da (Unicode) izin verilir ).

U+0085'in (Sonraki Satır) yanı sıra, Unicode Standardı, C1 kontrol karakterlerinin yorumlanmasını önermez ve yorumlarını daha yüksek seviyeli protokollere bırakır (kullanılmadığında ISO/IEC 6429 yorumlarını önerir, ancak gerektirmez). diğer amaçlar), bu nedenle bu eşlemeye Unicode'da izin verilir, ancak Unicode tarafından belirtilmez.

anımsatıcı EBCDIC CDRA eşleştirme İsim Açıklama
SEL 04 009C Seçme Tek baytlık bir parametre alan cihaz kontrol karakteri.
RNL 06 0086 Gerekli Yeni Hat Satır sonu, Girinti Sekmesi modunu sıfırlama
GE 08 0097 Grafik Kaçış Aşağıdaki karakterin yorumunu değiştiren kilitlenmeyen vites (bkz. örn. Kod sayfası 310 ). ISO / IEC 6429 en karşılaştırın SS2 (008E).
SPS 09 008D üst simge Üst simgeye başlayın veya alt simgeyi geri alın. ISO / IEC 6429 en karşılaştırın PLU (008C).
RPT 0A 008E Tekrarlamak Yazdırma arabelleğini tekrarlayan bir çalışma moduna geçin
RES/ENP 14 009D Geri Yükle, Sunumu Etkinleştir Çıktıyı devam ettir ( BYP/INP'den sonra )
NL 15 0085 (000A) Yeni hat Satır sonu. Varsayılan eşleme (0085) ISO / IEC 6429 en maçları NEL . Eşlemeler bazen UNIX satır kesme kuralına uygun olarak Satır Besleme (EBCDIC 0x25) ile değiştirilir.
POC 17 0087 Program Operatör İletişimi Ardından, belirli bir işlevi tanımlayan iki tek baytlık operatör, örneğin bir ışık veya işlev tuşu. ISO/IEC 6429'un CSI (009B), OSC (009D) ve APC (009F) ile kontrast.
UBS 1 A 0092 Birim Geri Alımı Kesirli bir geri boşluk.
CU1 1B 008F Müşteri Kullanım Bir IBM tarafından kullanılmaz; müşteri kullanımı için.
IUS/ITB 1F 001F Değişim Birimi Ayırıcı, Ara İletim Bloğu Ya "birim" olarak adlandırılan bir bloğu sonlandırmak için bir bilgi ayırıcı olarak kullanılır ( ASCII'de olduğu gibi ; ayrıca IR'ye bakınız ) ya da bir ara bloğun sonunu sınırlamak için bir iletim kontrol kodu olarak kullanılır.
DS 20 0080 Rakam Seçimi S/360 CPU düzenleme (ED) talimatı tarafından kullanılır
s.o.s. 21 0081 Önem Başlangıcı S/360 CPU düzenleme (ED) talimatı tarafından kullanılır. (Not: ISO / IEC 6429 en farklı SOS .)
FS 22 0082 Alan Ayırıcı S/360 CPU düzenleme (ED) talimatı tarafından kullanılır. (Not: (Değişim) Dosya Ayırıcı , ASCII'de kısaltılmış FS olarak 0x1C'dedir ve kısaltılmış IFS'dir.)
WUS 23 0083 Kelime Alt Çizgisi Hemen önceki kelimenin altını çizer. ISO / IEC 6429 adlı ile Kontrast SGR .
BYP/INP 24 0084 Baypas, Sunumu Engelle Çıkışı devre dışı bırakır, yani bir sonraki RES/ENP'ye kadar iletim kontrol kodları ve RES/ENP dışında tüm grafik karakterleri ve kontrol karakterlerini yok sayar .
SA 28 0088 Özelliği Ayarla Sabit uzunlukta bir cihaza özel kontrol dizisinin başlangıcını işaretler. CSP lehine kullanımdan kaldırıldı .
SFE 29 0089 Başlangıç ​​Alanı Genişletilmiş Değişken uzunluktaki cihaza özel kontrol dizisinin başlangıcını işaretler. CSP lehine kullanımdan kaldırıldı .
SM/GB 2A 008A Modu Ayarla, Değiştir Arabellek anahtarı gibi bir çalışma modunu ayarlayan cihaza özel kontrol.
CSP 2B 008B Kontrol Sırası Öneki Değişken uzunluktaki cihaza özel kontrol dizisinin başlangıcını işaretler. Ardından, bir kontrol işlevi kategorisini belirten bir sınıf baytı, dizi uzunluğunu veren bir sayım baytı (sayı ve tür baytları dahil, ancak sınıf baytı veya ilk CSP'yi değil), o kategorideki bir kontrol işlevini tanımlayan bir tür baytı ve sıfır veya daha fazla parametre baytı. ISO/IEC 6429'un DCS (0090) ve CSI (009B) ile kontrastı.
MFA 2C 008C Alan Özelliğini Değiştir Değişken uzunluktaki cihaza özel kontrol dizisinin başlangıcını işaretler. CSP lehine kullanımdan kaldırıldı .
30 0090 (rezerve) IBM tarafından gelecekte kullanılmak üzere ayrılmıştır
31 0091 (rezerve) IBM tarafından gelecekte kullanılmak üzere ayrılmıştır
kızılötesi 33 0093 Endeks Dönüşü Bir sonraki satırın başına geçin (ayrıca NL'ye bakın ) veya bir bilgi birimini sonlandırın (ayrıca bkz . IUS/ITB ).
PP 34 0094 Sunum Konumu Geçerli konumu ayarlamak için iki adet bir baytlık parametre (ilk olarak işlev, ikinci olarak sütun veya satır sayısı) takip eder. ISO/IEC 6429'un CUP ve HVP'si ile kontrast .
KKTC 35 0095 Şeffaf Ardından, izleyen saydam verilerin bayt sayısını belirten bir bayt parametresi gelir.
NBS 36 0096 Sayısal Geri Alım Bir basamak genişliğini geriye doğru hareket ettirin.
SBS 38 0098 alt simge Alt simgeye başlayın veya üst simgeyi geri alın. ISO / IEC 6429 en karşılaştırın PLD (008B).
O 39 0099 Girinti Sekmesi RNL veya RFF ile karşılaşılıncaya kadar geçerli ve sonraki tüm satırları girintiler .
ARFF 3 A 009A Gerekli Form Beslemesi Sayfa sonu, Girinti Sekmesi modunu sıfırlıyor .
CU3 3B 009B Müşteri Kullanımı İki IBM tarafından kullanılmaz; müşteri kullanımı için.
3E 009E (rezerve) IBM tarafından gelecekte kullanılmak üzere ayrılmıştır
EO FF 009F Sekiz Bir Dolgu olarak kullanılan tüm birler karakteri

Latin-1 karakter setli kod sayfaları

Aşağıdaki kod sayfaları tam Latin-1 karakter kümesine sahiptir (ISO/IEC 8859-1). İlk sütun, orijinal kod sayfa numarasını verir. İkinci sütun , evrensel para birimi işaretinin (¤) yerini alan euro işaretiyle (€) güncellenen kod sayfasının numarasını verir (veya EBCDIC 924 durumunda, set ISO 8859-15 ile eşleşecek şekilde değiştirilmiştir )

CCSID Avrupa
güncellemesi
Ülkeler
037 1140 Avustralya, Brezilya, Kanada, Yeni Zelanda, Portekiz, Güney Afrika, ABD
273 1141 Avusturya, Almanya
277 1142 Danimarka, Norveç
278 1143 Finlandiya, İsveç
280 1144 İtalya
284 1145 Latin Amerika, İspanya
285 1146 İrlanda, Birleşik Krallık
297 1147 Fransa
500 1148 Uluslararası
871 1149 İzlanda
1047 924 Açık Sistemler ( MVS C derleyicisi)

Eleştiri ve mizah

Açık kaynaklı yazılım savunucusu ve yazılım geliştiricisi Eric S. Raymond , Jargon Dosyasında EBCDIC'nin bilgisayar korsanları tarafından nefret edildiğini ve bununla hevesli programcılardan oluşan bir alt kültürün üyelerini kastettiğini yazıyor . Jargon Dosyası 4.4.7 aşağıdaki tanımı verir:

EBCDIC: /eb´s@·dik/, /eb´see`dik/, /eb´k@·dik/, n. [kısaltma, Genişletilmiş İkili Kodlu Ondalık Değişim Kodu] IBM dinozorlarında kullanıldığı iddia edilen bir karakter seti. En az altı birbiriyle uyumsuz sürümde bulunur, tümü bitişik olmayan harf dizileri ve modern bilgisayar dilleri için oldukça önemli olan birkaç ASCII noktalama karakterinin yokluğu gibi zevklere sahiptir (tam olarak hangi karakterlerin bulunmadığı, hangi EBCDIC sürümüne bağlı olduğunuza göre değişir). bakmak). IBM, 1960'ların başında delikli kart kodundan EBCDIC uyarlanan ve (bkz müşteri kontrol taktik olarak yayımlanan konnektör komplo zaten kurulmuş ASCII standardı spurning). Bugün, IBM bir açık sistem şirketi olduğunu iddia ediyor , ancak IBM'in EBCDIC varyantlarına ve bunlar arasında nasıl dönüştürüleceğine ilişkin kendi açıklaması hala dahili olarak çok gizli, okuma öncesi yakma olarak sınıflandırılıyor. Hackerlar EBCDIC adına ağlarlar ve onu en saf kötülüğün bir tezahürü olarak görürler.

—  Jargon dosyası 4.4.7

EBCDIC tasarımı aynı zamanda birçok şakanın kaynağıydı. Böyle bir şaka gitti:

Profesör: "Böylece Amerikan hükümeti bir şifreleme standardı bulmak için IBM'e gitti ve onlar—"
Öğrenci: "EBCDIC!"

EBCDIC karakter setine göndermeler klasik Infocom macera oyunu serisi Zork'ta yapılmıştır . Zork II'deki "Makine Odası"nda EBCDIC, anlaşılmaz bir dili ima etmek için kullanılır:

Bu, gürültülü bir şekilde vızıldayan çeşitli ağır makinelerle dolu büyük bir oda. Oda yanmış direnç kokuyor. Bir duvar boyunca sırasıyla yuvarlak, üçgen ve kare olan üç düğme bulunur. Doğal olarak, bu düğmelerin üzerinde EBCDIC ile yazılmış talimatlar vardır...

Ayrıca bakınız

Referanslar

Dış bağlantılar