مجموعة أحرف ZX Spectrum
مجموعة أحرف ZX Spectrum هي نسخة من نظام ASCII المستخدمة في حواسيب عائلة ZX Spectrum . وهي مبنية على ASCII-1967 ، ولكن الأحرف ^ و` و DELتُستبدل بالأحرف ↑ و£ و©. كما تختلف في استخدامها لرموز التحكم C0 بخلاف الرموز الشائعة BS، CRوتستخدم 128 حرفًا عالي البت خارج نطاق ASCII. [ 1 ] تُستخدم أيضًا مجموعة الأحرف الرئيسية القابلة للطباعة وخط النظام الخاص بـ ZX Spectrum في حاسوب Jupiter Ace .
أحرف قابلة للطباعة

تتضمن مجموعة أحرف Spectrum معيار US-ASCII، من 0x20 إلى 0x7F، باستثناء أن الرمز 0x5E يُمثل سهمًا لأعلى (↑) بدلًا من علامة الإقحام (^)، والرمز 0x60 يُمثل علامة الجنيه الإسترليني (£) بدلًا من علامة النبرة (`)، والرمز 0x7F يُمثل علامة حقوق النشر (©) بدلًا من رمز التحكمDEL . تجدر الإشارة إلى أن استخدام 0x5E كسهم لأعلى (↑) كان شائعًا أيضًا في إصدار 1963 الأقدم من ASCII. لم تكن علامة الجنيه الإسترليني (£) مُرتبطة بالرمز 0x23 كما هو الحال في النسخة البريطانية من ASCII ( ISO-646-GB )، مما يسمح باستخدام كلٍ من علامة الجنيه الإسترليني (↑) وعلامة الرقم (#) في آنٍ واحد. يُستخدم الرمز ↑ كعامل الأس في لغة BASIC الخاصة بـ Spectrum ، تمامًا كما يُستخدم الرمز ^ الذي يحل محله في ASCII-1967 للأس في العديد من لهجات BASIC ولغات البرمجة الأخرى.
بعد 0x7F، تستخدم مجموعة أحرف Spectrum نطاق البتات العالية 0x80–0xFF لأغراض خاصة. تحتوي هذه النطاقات على نفس أحرف الرسومات الكتلية 2×2 الموجودة في مجموعتي أحرف ZX80 و ZX81 (في مواقع أخرى)، والمتوفرة أيضًا في كتلة عناصر الكتلة Unicode. مع ذلك، لا تتضمن مجموعة الأحرف القياسية لجهاز ZX Spectrum أحرف الرسومات الكتلية 1×2 المُخففة بنسبة 50% الخاصة بجهازي ZX80/81 . تحتوي نقاط الترميز 0x90–0xA4 على أحرف الرسومات المُعرّفة من قِبل المستخدم (UDG) البالغ عددها 21 حرفًا، بينما تحتوي نقاط الترميز 0xA5–0xFF على كلمات BASIC الرئيسية المُجزأة إلى نقاط ترميز فردية. في وضع BASIC 128 الذي طُرح لاحقًا، تم تغيير ذلك إلى 19 حرفًا من أحرف UDG تنتهي عند 0xA2 متبوعة بالرمزين SPECTRUMالجديدين PLAY. تمثل الرموز من 0xC7 إلى 0xC9 المعاملات المكونة من حرفين <=، >=و ، و ، والتي تُقسّم بدورها إلى رموز مفردة. تسمح هذه الرموز بإدخال أمر BASIC مثل بضغطة زر واحدة في بداية السطر (أي في وضع الأوامر)، مما يُنتج الرمز 0xF6. يُعرض هذا الأمر ككلمة مفتاحية كاملة على الشاشة، ولكن يتم تخزين رمز بايت واحد فقط، لذا لا يحتاج المفسر إلا إلى تحليل هذا البايت أو حفظه/تحميله من وحدة تخزين خارجية مثل الشريط.<>PRINTPPRINT
يمكن ربط جميع الأحرف غير التابعة لـ UDG Spectrum بنظام Unicode . الأحرف الثلاثة غير التابعة لـ ASCII-1967، وهي ↑ و£ و©، موجودة في U+2191 وU+00A3 وU+00A9 على التوالي. أما أحرف الرسومات المربعة 2×2، فتوجد في كتلة Block Elements في U+2580–U+259F، مع العلم أن دعم الخطوط لهذه الأخيرة ليس عالميًا.
يتم ربط شكل أحرف UDG بمنطقة في ذاكرة الوصول العشوائي (RAM) ويتم تهيئتها بنسخ من الأحرف AU، ولكن يمكن إعادة تعريفها بشكل عشوائي، على سبيل المثال باستخدام أمر BASIC POKE. وكما هو الحال مع جميع الأحرف في خط النظام، فإنها تستخدم شبكة 8×8 بكسل مخزنة في 8 بايت. تؤدي إعادة تعريفها إلى تغيير مظهرها في PRINTالتعليمات اللاحقة، ولكنها لا تُغير أيًا من أحرف UDG المرسومة بالفعل على الشاشة. يمكن تحديد موقع تعريف حرف UDG باستخدام دالة BASIC USRمع الحرف كوسيط، على سبيل المثال USR "A"للحرف الأول. بشكل افتراضي، يشير هذا إلى آخر 168 بايت (21×8) من ذاكرة الوصول العشوائي (RAM) في عناوين الذاكرة من 65368 (0xFF58) إلى 65535 (0xFFFF) لجهاز Spectrum 48K. يُشار إلى الموقع بواسطة متغير النظام UDG [ 2 ] الموجود في عنوان الذاكرة 23675/6 (0x5C7B/C) ويمكن تغييره. تضمنت نسخة TK90X البرازيلية من جهاز ZX Spectrum تطبيقًا مدمجًا في ذاكرة القراءة فقط (ROM) لتحرير أحرف UDG هذه رسوميًا، بالإضافة إلى وظيفة تحميلها مسبقًا بأحرف مُشكّلة مستخدمة في اللغة البرتغالية. (لهذا الغرض، عرّفت TK90X أمرين إضافيين من أوامر Basic عند الرمزين 0 و1 على التواليTRACE ) [ 3UDG ]
يُشار إلى تعريف خط النظام الرئيسي، من 32 (مسافة) إلى 127 (حقوق الطبع والنشر)، بواسطة متغير النظام CHARS الموجود في عنوان الذاكرة 23606/7 (0x5C36/7). ويُعرَّف هذا المتغير بأنه يقع على بُعد 256 بايت أسفل البايت الأول من حرف المسافة، مما يُبسِّط صيغة تحديد موقع الحرف إلى CHARS + 8 × نقطة الترميز . القيمة الافتراضية لمتغير CHARS هي 15360 (0x3C00)، مع وجود خط النظام في نهاية ذاكرة القراءة فقط (ROM) لجهاز Spectrum عند العنوان من 15616 (0x3D00) إلى 16383 (0x3FFF). ويمكن تحميل خطوط بديلة كاملة في ذاكرة الوصول العشوائي (RAM) وإعادة توجيه متغير CHARS وفقًا لذلك. [ 2 ]
رموز التحكم
في منطقة رموز التحكم (النطاق C0)، يستخدم جهاز Spectrum في الغالب عناصر تحكم خاصة به، مثل INK وPAPER، للتحكم في لون النص الأمامي والخلفي. مع ذلك، فإن النقاط المشتركة BSونقاط CRالترميز هي نفسها كما في ASCII. يمكن محاكاة الضغط على المؤشر لأسفل (0x0A، تغذية سطر ASCII) بطباعة 32 مسافة باستخدام OVER 1 (طباعة شفافة فوق النص)، ويمكن محاكاة الضغط على المؤشر لأعلى (0x0B، جدولة عمودية ASCII) بطباعة 32 مسافة للخلف. يوجد عطل في ذاكرة القراءة فقط للنظام يمنع عمل الضغط على المؤشر لليمين عند 0x09 (انظر الجدولة الأفقية ASCII). [ 4 ] [ 5 ]
يُستخدم رمز التحكم 0x0E للإشارة إلى وجود عدد عشري بعده، وذلك لتسريع معالجة النصوص. في برنامج Sinclair BASIC، تُخزَّن الثوابت العددية بصيغة ASCII متبوعةً بالبايت 0x0E ثم تمثيل ثنائي عشري مكون من 5 بايتات. عند عرض برنامج BASIC، يُستخدم الجزء ASCII فقط، بينما يُستخدم التمثيل الثنائي فقط أثناء التشغيل. استغلت بعض برامج Spectrum هذه الخاصية لإخفاء الأرقام، بينما فعلت برامج أخرى ذلك لتوفير الذاكرة. [ 6 ] على سبيل المثال، قد يحتوي سطر BASIC المعروض على النحو التالي على أحرف ASCII للرقمين 1 و0 متبوعةً بالبايت 0x0E ثم التمثيل العشري للعدد 100 بدلاً من 10. أي شخص يعرض هذا البرنامج يرى الرقم 10، ولكن عند تنفيذه، ينتقل البرنامج إلى السطر 100.GO TO 10
رموز غير معرّفة
النطاقات 0x00–0x05، 0x07، 0x0A–0x0C، 0x0F، و0x17–0x1F غير مُعرَّفة. في معظم الحالات، ستظهر علامة استفهام عند طباعتها على الشاشة. مع ذلك، يمكن استخدامها لتمثيل قيمها العددية الحرفية بالاقتران مع رموز تحكم معينة: على سبيل المثال، 0x10 + 0x02 يُعيِّن لون الحبر (نص المقدمة) إلى اللون رقم 2 (الأحمر).
مجموعة الأحرف
يُبيّن الجدول التالي مجموعة أحرف جهاز ZX Spectrum. ويُعرض كل حرف مع ما يُقابله في نظام Unicode . [ 7 ] [ 8 ] وتُمثّل المسافات وأحرف التحكم باختصارات أسمائها.
| 0_ ضغطة مفتاح | 0_ حرف | 1_ | 2_ | 3_ | 4_ | 5_ | 6_ | 7_ | 8_ | 9_ | أ_ | ب_ | ج_ | D_ | E_ | F_ | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| _0 | حبر | 0 | @ | P | £ [ أ ] | ص | (أ) [ ب ] | (س) [ ب ] | VAL | USR | FORMAT | LPRINT | LIST | ||||
| 1 | ورق | ! | 1 | أ | سؤال | أ | q | (ب) [ ب ] | (R) [ b ] | LEN | STR$ | MOVE | LLIST | LET | |||
| 2 | فلاش | " | 2 | ب | R | ب | ر | (ج) [ ب ] | (S) [ b ] | SIN | CHR$ | ERASE | STOP | PAUSE | |||
| 3 | ساطع | 8 | 3 | ج | S | ج | s | (د) [ ب ] | (T) [ c ] | COS | NOT | OPEN # | READ | NEXT | |||
| 4 | فيديو حقيقي | معكوس | دولار | 4 | د | تي | د | ت | (هـ) [ ب ] | (U) [ d ] | TAN | BIN | CLOSE # | DATA | POKE | ||
| 5 | فيديو دعوة | زيادة | % | 5 | هـ | يو | هـ | u | (F) [ b ] | RND | ASN | OR | MERGE | RESTORE | |||
| 6 | caps lock | فاصلة | في | و | 6 | F | V | و | v | (G) [ b ] | INKEY$ | ACS | AND | VERIFY | NEW | PLOT | |
| 7 | يحرر | فاتورة غير مدفوعة | ' | 7 | جي | دبليو | ز | w | (ح) [ ب ] | PI | ATN | <= | BEEP | BORDER | RUN | ||
| 8 | غادر | يسار [ هـ ] | ( | 8 | ح | X | ح | x | (أ) [ ب ] | FN | LN | >= | CIRCLE | CONTINUE | SAVE | ||
| 9 | يمين | يمين [ f ] | ) | 9 | أنا | Y | أنا | y | (J) [ b ] | POINT | EXP | <> | INK | DIM | RANDOMIZE | ||
| أ | تحت | * | : | ج | Z | ج | z | (ك) [ ب ] | SCREEN$ | INT | LINE | PAPER | REM | IF | |||
| ب | أعلى | + | ؛ | ك | [ | ك | { | ( رطل ] | ATTR | SQR | THEN | FLASH | FOR | CLS | |||
| ج | يمسح | ، | < | ل | \ | ل | | | (م) [ ب ] | AT | SGN | TO | BRIGHT | GO TO | DRAW | |||
| _D | يدخل | يدخل | - | = | م | ] | م | } | (ن) [ ب ] | TAB | ABS | STEP | INVERSE | GO SUB | CLEAR | ||
| _E | يمتد | العدد [ غرام ] | . | > | شمال | ↑ [ أ ] | ن | ~ | (O) [ b ] | VAL$ | PEEK | DEF FN | OVER | INPUT | RETURN | ||
| _F | الرسومات | / | ؟ | يا | _ | o | © [ أ ] | (P) [ b ] | CODE | IN | CAT | OUT | LOAD | COPY |
نسخة الطيف الليتوانية
يستبدل إصدار الطيف الليتواني بعض الأحرف في معيار ISO 8859-1 بأحرف ليتوانية. [ 9 ] [ 10 ] ويُطلق عليه اسم صفحة الترميز 63283 في نظام التشغيل FreeDOS. [ 11 ]
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | أ | ب | ج | د | هـ | F | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cx | Ą 0104 | أ | Â | Ã | Ä | Å | Č 010C | ج | Ę 0118 | Ė 0116 | Ê | Ë | أنا 012E | أنا | أنا | أنا |
| التشخيص | Ð | Ñ | Ò | أو | أو | Õ | ش 0160 | × | Ø | Ų 0172 | Ū 016A | Ž 017D | Ü | Ý | ذ | ß |
| السابق | أ 0105 | أ | â | ã | أ | å | č 010D | ç | أنا 0119 | ė 0117 | ê | ë | أنا 012F | أنا | أنا | أنا |
| مؤثرات صوتية | ð | ñ | ò | ó | أو | õ | ش 0161 | ÷ | ø | ų 0173 | ū 016B | ž 017E | ü | ý | ذ | ÿ |
ملحوظات
- 1 2 3 يختلف عن US-ASCII.
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 UDG (رسومات معرفة من قبل المستخدم) حرف.
- ↑ UDG T في لغة 48 BASIC، الكلمة المفتاحيةSPECTRUMفي لغة 128 BASIC.
- ↑ UDG U في لغة 48 BASIC، كلمة مفتاحيةPLAYفي لغة 128 BASIC.
- ↑ في ذاكرة القراءة فقط القياسية،
CHR$ 8يفشل الرجوع من السطر 1 إلى السطر صفر، ويفشل بطريقة مختلفة عند الرجوع من السطر صفر. - ↑ في ذاكرة القراءة فقط القياسية،
CHR$ 9لا يتم تحريك موضع إخراج النص فعليًا. - ↑ يستخدم في برامج BASIC كعلامة تسبق رقم الفاصلة العائمة المكون من 5 بايت.
مراجع
- 1 2 دليل ZX Spectrum، الملحق أ، مجموعة الأحرف
- دليل ZX Spectrum، الفصل 25، متغيرات النظام
- ^ "Los Comandos Exclusivos de la TK 90X" . كمبيو كلاسيكو - Antigüedades Digitales . 2010. أرشفة من الإصدار الأصلي في 27 آذار 2019.
- ↑ لوغان، إيان (1983). فهم طيفك . دار ملبورن هاوس. ص 189. ISBN 086161111X.
- ↑ ويرماوث، جيف (2004). "قائمة ملفات التجميع لإنشاء ذاكرة قراءة فقط (ROM) بحجم 16 كيلوبايت لجهاز ZX Spectrum" . تجميع ذاكرة القراءة فقط (ROM) غير المكتمل لجهاز Spectrum . مؤرشف من الأصل في 25 أغسطس 2015.
- ↑ سوان، ريتشارد ب. "الجزء 4: فك التشفير". كيفية الاختراق على جهاز ZX Spectrum .
- ↑ زاريتسكي، مايكل (2004). "تحويل مجموعة أحرف سينكلير زد إكس سبكتروم+ 48K إلى يونيكود" . ذا إكليكتيك ساتير . مؤرشف من الأصل بتاريخ 7 مارس 2005. تم الاطلاع عليه بتاريخ 3 أبريل 2023 .
- ↑ زاريتسكي، مايكل (7 مارس 2005). "مجموعة أحرف سينكلير سبكتروم+ 48K" . ذا إكليكتيك ساتير . مؤرشف من الأصل في 7 مارس 2005. تم الاطلاع عليه في 3 أبريل 2023 .
- ^ "Rašmenų koduotės" . Lietuvybé.lt (باللغة الليتوانية).
- ↑ "spectrum.gif" . Lietuvybé.lt (باللغة الليتوانية).
- ↑ "Cpi/CPIISO/Codepage.TXT في الفرع الرئيسي · FDOS/Cpi" . GitHub .
روابط خارجية
انظر أيضاً
- مجموعات الأحرف
- زد إكس سبكتروم
- مقدمات متعلقة بالحاسوب في عام 1982
