عدد صحيح BASIC

من ويكيبيديا، الموسوعة الحرة
اذهب إلى الملاحة اذهب الى البحث
عدد صحيح BASIC
مطورستيف وزنياك
اول ظهور1976 ؛ قبل 46 سنة [1] ( 1976 )
برنامجأبل الأول ، أبل الثاني
متاثر ب
HP الأساسي
تأثر
التفاح الأساسي

Integer BASIC هو مترجم أساسي كتبه ستيف وزنياك لأجهزة كمبيوتر Apple I و Apple II . كان متوفرًا في الأصل على كاسيت لـ Apple I في عام 1976 ، ثم تم تضمينه في ROM على Apple II منذ إصداره في عام 1977 ، وكان أول إصدار من BASIC يستخدمه العديد من مالكي أجهزة الكمبيوتر المنزلية الأوائل. [2]

دعمت اللغة الرياضيات باستخدام الأعداد الصحيحة ، وتفتقر إلى دعم الفاصلة العائمة . سمح استخدام الأعداد الصحيحة بتخزين الأرقام بتنسيق 16 بت أكثر إحكاما يمكن قراءته ومعالجته بسرعة أكبر من تنسيقات الفاصلة العائمة 32 أو 40 بت الموجودة في معظم BASICs في ذلك العصر. جعل هذا الأمر سريعًا لدرجة أن بيل جيتس اشتكى عندما تفوق على Microsoft BASIC في المعايير. ومع ذلك ، فقد حد هذا أيضًا من قابليتها للتطبيق كلغة للأغراض العامة. [أ]

هناك اختلاف آخر مع الأساسيات الأخرى للعصر وهو أن Integer BASIC تعامل السلاسل كمصفوفات من الأحرف ، على غرار النظام في C أو Fortran 77 . تم الوصول إلى السلاسل الفرعية باستخدام تقطيع الصفيف بدلاً من وظائف السلسلة. تم تقديم هذا النمط في HP Time-Shared BASIC ، ويمكن العثور عليه أيضًا في BASICs المعاصرة الأخرى المنقوشة على HP ، مثل North Star BASIC و Atari BASIC . يتناقض مع النمط الموجود في الأساسيات المشتقة من DEC ، بما في ذلك Microsoft BASIC .

تم تطوير اللغة في البداية تحت اسم GAME BASIC ويشار إليها ببساطة باسم Apple BASIC عندما تم تقديمها على Apple I وأصبحت Integer BASIC عندما تم نقلها إلى Apple II وشحنها جنبًا إلى جنب مع Applesoft BASIC ، وهو منفذ من Microsoft BASIC والذي تضمنت دعم النقطة العائمة. تم التخلص التدريجي من Integer BASIC لصالح Applesoft BASIC بدءًا من Apple II Plus في عام 1979.

التاريخ

كطالب في المدرسة الثانوية ، رتب مدرس الإلكترونيات في Steve Wozniak للطلاب الرائدين في الفصل وظائف في شركات الإلكترونيات المحلية. تم إرسال Wozniak إلى Sylvania حيث برمج في FORTRAN على IBM 1130 . [4] في نفس العام ، وضعت شركة جنرال إلكتريك محطة في المدرسة الثانوية كانت متصلة بأحد حواسيبهم المركزية التي تدير خدمة مشاركة الوقت BASIC ، والتي كانوا يروجون لها بكثافة في ذلك الوقت. بعد منحهم ثلاثة أيام من الوصول ، طُلب من الطلاب كتابة رسائل حول سبب حصول المدرسة على محطة طرفية بشكل دائم ، لكن جهودهم باءت بالفشل في النهاية.[1]

بعد بضع سنوات ، كان وزنياك يعمل في Hewlett-Packard (HP) يدير عمليات محاكاة لتصميمات الرقائق والتخطيط المنطقي للآلات الحاسبة. [1] حققت HP نجاحات كبيرة في سوق الحواسيب الصغيرة من خلال أجهزة سلسلة HP 2000 التي تدير إصدارًا مخصصًا لمشاركة الوقت من BASIC . مقابل ما يقرب من 100000 دولار ، يمكن للمرء بناء آلة مجهزة بشكل معقول يمكنها دعم ما بين 16 و 32 مستخدمًا يشغلون برامج BASIC. [5] على الرغم من كونها باهظة الثمن ، إلا أنها لا تزال تمثل جزءًا بسيطًا من تكلفة أجهزة الكمبيوتر الرئيسي [ب] ، وبالنسبة للمستخدمين الثقلين ، كانت أقل من تكلفة خدمات مشاركة الوقت. [c] اتبعت HP هذا مع HP 9830، آلة بحجم سطح المكتب مقابل 10000 دولار (أي ما يعادل 67000 دولار في عام 2020) تدير أيضًا BASIC ، والتي كان بإمكان وزنياك الوصول إليها. [9]

شممت الريح وعرفت أن المفتاح لجعل جهاز الكمبيوتر الخاص بي جيدًا (شائعًا) هو تضمين لغة عالية المستوى وأنه يجب أن تكون أساسية.

ستيف وزنياك [1]

في يناير 1975 تم الإعلان عن Altair 8800 وأطلق ثورة الحواسيب الصغيرة . في مارس ، حضر وزنياك الاجتماع الأول لنادي Homebrew Computer Club وبدأ في صياغة تصميم جهاز الكمبيوتر الخاص به. كان Altair BASIC من شركة Microsoft التي تم تشكيلها مؤخرًا أحد أهم قطع البرامج الخاصة بـ Altair ، ومن أكثر البرامج التي تم قرصنتها . [10] خلص وزنياك إلى أن الجهاز الخاص به يجب أن يكون له BASIC خاص به ، والذي نأمل أن يكون الأول لمعالج MOS Technology 6502 . نظرًا لأن اللغة تحتاج إلى 4 كيلوبايت من ذاكرة الوصول العشوائي ، فقد صنع هذا الحد الأدنى من الذاكرة للتصميم. [1]

كانت مراجع وزنياك لـ BASIC عبارة عن نسخة من 101 BASIC Computer Games ودليل HP BASIC. [1] لم يكن يعلم أن HP's BASIC كانت مختلفة تمامًا عن مجموعة DEC BASIC المستخدمة في 101 لعبة ، والتي كانت أيضًا أساس Microsoft BASIC لـ Altair. بناءً على هذه المصادر ، بدأ وزنياك في رسم مخطط نحوي للغة. تضمن التصميم في البداية دعم الفاصلة العائمة ، ولكن لا يزال يأمل أنه قد ينشر أول BASIC على 6502 ويصبح "نجمًا" ، قرر التخلي عن النقطة العائمة وكتابة نظام رياضيات عدد صحيح منفصل لتوفير بضعة أسابيع من وقت البرمجة. [1]

وصف وزنياك لغته فيما بعد بأنها "مخصصة في المقام الأول للألعاب والاستخدامات التعليمية". [11] بالإشارة إليها خلال التطوير باسم "GAME BASIC" ، كتب Wozniak الكود يدويًا ، وقام بترجمة تعليمات كود المجمع إلى مكافئات كود الآلة الخاصة بهم ثم تحميل النتيجة على جهاز الكمبيوتر الخاص به. [12] بدون أي تدريب على كيفية كتابة لغة الكمبيوتر ، استخدم خبرته في الآلة الحاسبة من HP لتنفيذ آلة مكدس لتفسير التعبيرات. بمجرد تشغيل الإجراءات الأساسية ، عمل على الأوامر الأخرى واحدة تلو الأخرى بطريقة معيارية. مع كل زيارة إلى نادي Homebrew ، أظهر بعض الميزات الإضافية التي تمت إضافتها في الشهر الماضي. [1]

لقد كان اليوم الأكثر إرضاءً في حياتي ... لقد عرضت لعبة Breakout [في Homebrew] - مكتوبة بالكامل بلغة BASIC ... بعد تصميم ألعاب الآركيد للأجهزة ، عرفت أن التمكن من برمجتها في BASIC سيغير العالم.

ستيف وزنياك [9]

إعلان لجهاز كمبيوتر Apple I يشير إلى سياسة Apple في توفير برامج مجانية أو غير مكلفة لأجهزة الكمبيوتر الخاصة بها.

في أوائل عام 1976 ، أعلنت شركة Apple Inc عن إعلاناتها لجهاز كمبيوتر Apple I الخاص بها ، أن "فلسفتنا هي توفير برامج لأجهزتنا مجانًا أو بأقل تكلفة" [13] و "نعم أيها الناس ، Apple BASIC مجاني". [14] تمت طباعة هذه الرسالة بعد فترة وجيزة من كتاب بيل جيتس الشهير Open Letter to Hoyists الذي أشار إلى أن الناس كانوا يسرقونه عن طريق نسخ نسخ من Altair BASIC . [15]

ساعد وزنياك جوبز ، الذي عمل لدى أتاري ، في إعادة تصميم Breakout . [16] في وقت لاحق ، قرر أن يرى ما إذا كان بإمكان المرء كتابة اللعبة بلغة BASIC. أضاف أوامر لقراءة وحدات تحكم مجداف وأكثر من سلسلة من التعديلات السريعة كان هناك نسخة من اللعبة قيد التشغيل. لتحسين إمكانية اللعب ، أضاف مكبر صوت لعمل نقرات عندما تضرب الكرة الأشياء. أثناء عرضه على ستيف جوبز ، أظهر وزنياك أنه يمكنه تغيير الألوان التي استخدمتها لعبته بسرعة ، فقط عن طريق تغيير شفرة المصدر. كتب وزنياك لاحقًا أنه أثبت أن "البرامج كانت أكثر مرونة من الأجهزة" ، وأنه هو وجوبز أدركا أنه "الآن ، يمكن لأي شخص إنشاء ألعاب أركيد دون الحاجة إلى تصميمها في الأجهزة." [1]

أكمل وزنياك مكتبة الفاصلة العائمة لـ 6502 ونشرها في طبعة أغسطس 1976 من Dr. Dobb's . [17] أصبحت هذه المكتبة لاحقًا جزءًا من ذاكرات القراءة فقط الخاصة بـ Apple II . [18] بدأ وزنياك العمل على النقل الخلفي لرمز الفاصلة العائمة إلى Apple BASIC ، لكنه انحرف في مهمة تصميم وحدة تحكم بالقرص المرن لما أصبح القرص الثاني . قال مايك ماركولا إن الشركة ستذهب إلى معرض الإلكترونيات الاستهلاكية في لاس فيجاس إذا كان نظام القرص جاهزًا في الوقت المناسب ، لذلك عمل Wozniak و Randy Wigginton عليه دون توقف خلال عطلة عام 1977. [19]

عندما عاد إلى موضوع النقطة العائمة في BASIC ، اشتكى جوبز من أنها تستغرق وقتًا طويلاً. دون علم Wozniak ، كانت الشركة قد رتبت بالفعل ترخيصًا مع Microsoft لتلقي الإصدار 6502 المكتمل مؤخرًا من رمز Altair. عند فحص كود MS ، قرر Wozniak أنه من الأسهل إضافة دعم الرسومات إلى الكود الخاص بهم بدلاً من إضافة نقطة عائمة BASIC الخاصة به ، حيث أن الترقيع اليدوي المطلوب لاحقًا لرمز الجهاز الأصلي بينما تمت كتابة MS في المجمع وتعديله بسهولة أكبر. انتهى تطوير Apple BASIC لصالح ما أصبح يعرف باسم Applesoft BASIC . لاحظ وزنياك لاحقًا ، "كانت أكبر خيبة أملي هي الذهاب إلى دوال السلسلة الفظيعة مثل LEFT $ (VAR، 5) و MID $ (VAR2،5،3) بدلاً من دالاتي الخاصة". [19] [د]

عندما تم شحن Apple II في صيف عام 1977 ، تم توفير Integer BASIC في ذاكرة ROM ، بينما تم شحن Applesoft BASIC على كاسيت. تغير هذا مع طرح Apple II Plus في عام 1979 ، عندما تم وضع Applesoft في ذاكرة القراءة فقط. [20]

الوصف

تحرير البرنامج

مثل معظم تطبيقات BASIC في ذلك العصر ، عملت Integer BASIC كمترجم للغة بالإضافة إلى بيئة تحرير الخط. عندما كان BASIC قيد التشغيل ، تم عرض > موجه أوامر حيث يمكن للمستخدم إدخال العبارات. [21] [هـ] على عكس منصات أجهزة الكمبيوتر المنزلية اللاحقة ، لم تكن BASIC هي البيئة الافتراضية عندما بدأت تشغيل Apple ، فقد بدأت عادةً في الشاشة . بدأ BASIC بالضغط على Ctrl+ . [22]BReturn

يتم إدخال العبارات التي تم إدخالها بأرقام أولية في تخزين البرنامج من أجل "التنفيذ المؤجل" ، [23] إما كسطر جديدة أو استبدال أي منها قد يكون لها نفس الرقم سابقًا. [24] تمت الإشارة إلى العبارات التي تم إدخالها بدون رقم سطر بالأوامر ، وتم تشغيلها على الفور. [f] يمكن أن تتراوح أرقام الأسطر من 0 إلى 32767 ، [25] [g] ويمكن أن تحتوي الأسطر على ما يصل إلى 128 حرفًا. [27]

تضمن Integer BASIC أيضًا AUTOالأمر لإدخال أرقام الأسطر تلقائيًا في رقم بداية معين AUTO 100، مثل إضافة 10 إلى الرقم الأخير مع كل سطر جديد. AUTO 300,5سيبدأ الترقيم عند السطر 300 بالخمس ؛ 300 ، 305 ، إلخ. تم إيقاف الترقيم التلقائي عن طريق الإدخال MAN. [28]

إحدى الميزات المثيرة للاهتمام للمحرر هي أنه يمكن تخصيص جزء من الشاشة ليكون "النافذة" ، حيث يتم إجراء التحديثات الحية. كان هذا عادةً هو الشاشة بأكملها ، ولكن يمكن أن يقتصر على مساحة أصغر عن طريق POKEإدخال القيم في مواقع الذاكرة من 32 إلى 35. [29] يمكن استخدام هذه الميزة لإنشاء منطقة نص قابلة للتحرير بينما تكون بقية الشاشة في وضع الرسومات . [30]

تصحيح

كما هو الحال في معظم BASICs ، بدأت البرامج RUNبالأمر ، وكما هو شائع ، يمكن توجيهها إلى رقم سطر معين مثل RUN 300. [31] يمكن إيقاف التنفيذ في أي وقت باستخدام + [32] ثم إعادة تشغيله باستخدام tinue ، على عكس الأكثر شيوعًا . [33]CtrlCCONCONT

للتنفيذ خطوة بخطوة ، TRACEيمكن استخدام التعليمات في موجه الأوامر أو وضعها داخل البرنامج نفسه. عندما تم تشغيله ، تمت طباعة أرقام الأسطر لكل سطر قام البرنامج بزيارته. يمكن إيقاف تشغيل الميزة مرة أخرى باستخدام NOTRACE. [34]

كانت الميزة غير المعتادة إلى حد ما هي الأمر DSP(لـ "العرض"). عند مواجهتها في أحد البرامج ، من تلك النقطة فصاعدًا ، سيتم عرض أي تغييرات في قيمة المتغير. على سبيل المثال ، DSP Xستعرض قيمة X في كل مرة يتم تغييرها ، جنبًا إلى جنب مع رقم السطر الذي حدث فيه التغيير. [35] كما هو الحال مع TRACE ، تم إيقاف تشغيل DSP مع NODSP. [26]

أسماء المتغيرات

حيث تقتصر أسماء Dartmouth BASIC و HP-BASIC المتغيرة على حرفين على الأكثر (إما حرف واحد أو حرف متبوعًا برقم واحد) ، وحيث سمحت MS-BASIC بحرف متبوع بحرف أو رقم اختياري (تجاهل الأحرف اللاحقة) ، كان Integer BASIC غير معتاد في دعم أي اسم متغير طول (على سبيل المثال ، SUM ، GAMEPOINTS ، PLAYER2). التحذير الوحيد هو أن أسماء المتغيرات لا يمكن أن تحتوي على كلمات محجوزة ؛ على سبيل المثال ، كان THISCOLOR و COLORFUL أسماء متغيرات غير صالحة لأنها تحتوي على الكلمة الأساسية COLOR، أمر نظام. [36] بالإضافة إلى ذلك ، تم تحديد الأسطر بـ 128 حرفًا ، لذلك لا يمكن للأسماء المتغيرة أن تتجاوز هذا الطول. [27]

الرياضيات

يستخدم Integer BASIC ، كما يوحي اسمه ، الأعداد الصحيحة كأساس لحزمة الرياضيات الخاصة به. تم تخزينها داخليًا كرقم 16 بت ، صغير (كما هو 6502). سمح هذا بحد أقصى لقيمة أي حساب بين -32767 و 32767 ؛ على الرغم من أن التنسيق يمكنه أيضًا تخزين القيمة -32768 ، إلا أن BASIC لم يتمكن من عرض هذا الرقم. أنتجت الحسابات التي أدت إلى قيم خارج هذا النطاق >32767 ERR. [37]

تضمنت عوامل Infix +(إضافة) و -(طرح) و *(الضرب) و /(القسمة) و MOD (الباقي) والأس باستخدام ^الحرف. العوامل الثنائية متضمنة AND، ORو NOT. تضمنت المقارنات الثنائية المجموعة القياسية لـ =، >، <، >=، والمستوحاة من HP <=، والتي كانت مكافئة لـ <>. [38]<>#

تم السماح فقط للصفائف أحادية البعد ، محدودة الحجم فقط بالذاكرة المتاحة. [39] كانت الدوال الرياضية قليلة. تم دعم فقط ABS(القيمة المطلقة) و SGN(تسجيل) و RND(رقم عشوائي). [40] على عكس الإصدارات المشتقة من MS ، حيث تم تجاهل المعلمة وإرجاع RNDالقيمة دائمًا 0 .. <1 ، استخدم Integer BASIC المعلمة ؛ RND(6)إرجاع عددًا صحيحًا من 0 إلى 5. [41]

سلاسل

استند التعامل مع سلسلة Integer BASIC إلى النظام في HP BASIC. تمت معالجة متغيرات السلسلة هذه كمصفوفات من الأحرف التي يجب DIMتحريرها قبل الاستخدام. هذا مشابه للنموذج الموجود في C [42] أو Fortran 77 . [43] هذا على النقيض من الأساسيات مثل MS حيث تكون الأوتار من النوع المتغير الطول. [44] قبل أن تصبح BASICs المشتقة من MS هي المعيار الفعلي ، لم يكن هذا النمط نادرًا ؛ استخدم North Star BASIC [45] و Atari BASIC [46] نفس المفهوم ، كما فعل آخرون.

تستخدم السلاسل في Integer Basic مقدارًا ثابتًا من الذاكرة بغض النظر عن عدد الأحرف المستخدمة داخلها ، بحد أقصى 255 حرفًا. [47] كان لهذا ميزة تجنب الحاجة إلى جمع القمامة من الكومة التي كانت بطيئة بشكل ملحوظ في MS BASIC [h] ولكنها تعني أن السلاسل التي كانت أقصر من الطول المعلن تم إهدارها.

تم توفير الوصول إلى السلسلة الفرعية من خلال بناء جملة تقسيم الصفيف . على سبيل المثال ، PRINT A$(0,5)تم طباعة الأحرف الستة الأولى من A $ ، الأحرف من 0 إلى 5. [49] [49] [i] تم توفير التسلسل باستخدام نفس النظام ، A$(5)="ABC"واستبدل أي أحرف تبدأ من الموضع 5 بالسلسلة "ABC". [50] يتناقض هذا مع معالجة السلسلة على غرار DEC / MS والتي تستخدم وظائف سلسلة مثل MID$الوصول إلى السلاسل الفرعية +والتسلسل. [51] [ي]

نظرًا لأن العديد من الميزات التي سيتم توفيرها بواسطة وظائف السلسلة تم توفيرها بدلاً من ذلك عن طريق تشريح الصفيف ، فقد تم تقليل اختيار وظائف السلسلة. LENأرجع طول سلسلة [47] وأرجع ASCرمز ASCII الرقمي للحرف الأول في سلسلة. [52] كان يفتقر إلى المكافئ CHR$الذي أعاد حرف ASCII برمز رقمي معين. [53]

الرسومات والصوت

عندما تم إطلاقها ، كانت وحدة التحكم الوحيدة في لعبة Apple هي وحدة التحكم في مجداف ، والتي تحتوي على جهازي تحكم على موصل واحد. يمكن قراءة موضع وحدة التحكم باستخدام PDLالوظيفة ، وتمرير رقم وحدة التحكم ، 0 أو 1 ، مثل إرجاع قيمة بين 0 و 255. [54] [k]A=PDL(0):PRINT A

لم تتضمن أجهزة Apple أجهزة صوت مخصصة ، فقط "صافرة" بسيطة. تم إنجاز الأصوات من خلال PEEKتحديد موقع ذاكرة السماعة ، -16336. [l] إلقاء نظرة خاطفة بشكل متكرر على هذه القيمة أنتجت نغمات ، واقترح الدليل استخدام تعبير رياضي للقيام بذلك ، مثل . [56]S=PEEK(-16336)-PEEK(-16336)-PEEK(-16336)-PEEK(-16336)-PEEK(-16336)

كان دعم الرسومات أكثر تفصيلاً. تم تشغيل وضع الرسومات باستخدام GRالبيان وإيقاف تشغيله باستخدام TEXT. [57] كان الرسم مشروطًا ويبدأ عادةً بإصدار أمر لتغيير اللون ، ويتم ذلك عن طريق تعيين متغير زائف ؛ COLOR=12سيضبط لون الرسم على 12 ، أخضر فاتح. يمكن بعد ذلك PLOT 10,10إنتاج بقعة واحدة من هذا اللون ، [58] HLIN 0,39 AT 20 لرسم خط أفقي في الصف 20 يمتد على الشاشة ، أو VLIN 5,15 AT 7لرسم خط عمودي أقصر أسفل العمود 7. [59] A=SCRN X,Y أعاد لون الشاشة عند X ، ص. [52] [م]

الإدخال / الإخراج

يفتقر Integer BASIC إلى أي أوامر إدخال / إخراج مخصصة ، ويفتقر أيضًا إلى DATAالعبارة والمرتبط بها READ. للحصول على البيانات من البرنامج وخارجه ، تمت إعادة توجيه وظيفة الإدخال / الإخراج إلى فتحة بطاقة محددة باستخدام PR#xو IN#x، والتي أعادت توجيه الإخراج أو الإدخال (على التوالي) إلى الفتحة المرقمة. منذ ذلك الحين ، يمكن إرسال البيانات إلى البطاقة باستخدام PRINTالأوامر التقليدية والقراءة منها باستخدام INPUT. [52]

ملاحظات أخرى

تضمن Integer BASIC TABميزة ، والتي وضعت المؤشر على عمود معين من 0 إلى 39. وهي تختلف عن الإصدارات الموجودة في معظم BASICs من حيث أنها كانت أمرًا برقم تالي ، على عكس دالة ذات القيمة بين قوسين ؛ يمكن للمرء أن يحرك المؤشر إلى العمود 10 باستخدام TAB 10Integer BASIC [60] بينما في MS سيكون هذا PRINT TAB(10). بالإضافة إلى ذلك ، VTABعمل الأمر بشكل مشابه TABولكنه أضاف مسافات رأسية بدلاً من الأفقية. لأسباب غير مبررة ، كانت الإحداثيات في هذه الحالة من 1 إلى 24 بدلاً من 0 إلى 23. [61]

تضمن Integer BASIC أمرًا POPللخروج من الحلقات. [52] أدى هذا إلى إخراج العنصر الأعلى من مكدس FOR. كما دعمت Atari BASIC نفس الأمر ، [62] بينما استخدم North Star BASICEXIT . [63]

تضمنت ذاكرة القراءة فقط الأساسية Integer BASIC مراقب رمز الآلة ، " مُجمّع صغير " ، ومُفكك لإنشاء برامج لغة التجميع وتصحيحها . قام Wozniak بتجميع الشاشة يدويًا كأول برنامج لـ Apple II ، ثم استخدمها لكتابة Integer BASIC. [64] [65] [2]

الكلمات المحجوزة

التفاح الأساسي

كان لدى Apple BASIC الأوامر التالية: [66]

AUTO val1 ، val2 CLR [ CLEAR ] DEL val1 ، val2 LIST val1 ، val2 RUN val1 SCR [ SCRATCH / NEW ] HIMEM = expr LOMEM = expr ( LET ) var = expr INPUT ( موجه ) var1 ، var2 ... PRINT item ( ق ) TAB expr لـ var =  
 
  
  
 
   
  
  
   
    
 
 
   expr1 TO expr2 STEP expr3 NEXT var IF expr ثم العبارة IF expr ثم رقم السطر GOTO expr GOSUB expr RETURN DIM var1 ( expr1 var2 ( expr2 ) ... REM text END POKE expr1 ، expr2 CALL expr Functions: ABS ()، SGN () ، نظرة خاطفة () ، RND () ، LEN ()    
 
   
    
 
 

   


  
 
     

عدد صحيح أساسي

أضاف Integer BASIC ما يلي: [67] [68]

COLOR = expr CON [ تابع ] DSP GR HLIN expr1 ، expr2 AT expr3 MAN NEW [ يستبدل SCR ] NOTRACE PLOT expr1 ، expr2 POP TEXT TRACE VLIN expr1 ، expr2 AT expr3 الوظيفة: ASC ()، PDL ()، SCRN ( X ، Y )  
 


    

  

  



    
   

التنفيذ

قام Integer BASIC بقراءة الأسطر التي يكتبها المستخدم من المخزن المؤقت وتشغيلها من خلال محلل ينتج عنه سلسلة من الرموز المميزة . كجزء من هذه العملية ، تم اكتشاف أخطاء نحوية بسيطة وإدراجها في القائمة. إذا كان التحليل ناجحًا ، تم تحويل رقم السطر (إن وجد) من تنسيق ASCII العشري إلى عدد صحيح 16 بت وأي كلمات رئيسية إلى رمز مميز مكون من 7 بت. [64]

تم تمثيل بعض الكلمات الرئيسية بعدة رموز مميزة ؛ على سبيل المثال ، حيث كان لدى Microsoft BASIC رمز واحد للكلمة الرئيسية PRINT، كان لدى Integer BASIC ثلاثة رموز مميزة: واحد إذا كانت الكلمة الرئيسية متبوعة بدون وسيطات ، وواحد إذا تبعه تعبير حسابي ، والآخر إذا متبوعًا بسلسلة حرفية. [69]

تم تحويل القيم الحرفية الرقمية ، مثل القيمة 500 ، إلى التمثيل الثنائي 16 بت (ثنائي البايت) ، في هذه الحالة ، 01F4 $ سداسي عشري . للإشارة إلى أن هذه كانت قيمة وليست كلمة أساسية ، تم إدخال بايت واحد بين $ B0 و $ B9 أمام قيمة ثنائية البايت. [n] تم تحويل الأحرف الحرفية ، مثل "HELLO WORLD" بدلاً من ذلك عن طريق تعيين البت العالي لكل حرف بحيث Aيتم تخزينه على أنه $ C1. تم تحويل أسماء المتغيرات بنفس الطريقة ، مع تحويل الأحرف لتشغيل البت المرتفع ، وأي أرقام في الاسم يتم تمثيلها من خلال $ B0 المقابل من خلال $ B9 ، بحيث A5يتم ترميز المتغير كـ $ C1B5. [64]

إذا تم إدخال السطر بدون رقم سطر ، فسيتم تنفيذ الكود مباشرة من المخزن المؤقت. إذا كان يحتوي على رقم سطر ، فسيتم نسخه من المخزن المؤقت إلى منطقة تخزين البرنامج. [64]

استخدم مترجم وقت التشغيل مجموعتين من المكدسات للتنفيذ: واحدة للكلمات الأساسية للعبارات والأخرى لتقييم المعلمات. أعطيت كل عبارة أولويتين: واحدة تنص على المكان الذي يجب أن تحدث فيه في عملية متعددة الخطوات ، مثل سلسلة من العمليات الحسابية لتوفير ترتيب العمليات ، والأخرى التي اقترحت متى يجب إجراء التقييم ، على سبيل المثال ، حساب القيم الداخلية لـ صيغة الأقواس. عند مواجهة المتغيرات ، تم تحليل اسمها ثم البحث عنها في منطقة التخزين المتغيرة. إذا لم يتم العثور عليه ، تمت إضافته إلى نهاية القائمة. ثم تم وضع عنوان تخزين المتغير ، الذي ربما تم إنشاؤه حديثًا ، في حزمة التقييم. [64]

تفاصيل ROM

سويت 16

بالإضافة إلى Integer BASIC ، احتوت Apple ROMs على لغة مجمِّع مخصصة تُعرف باسم SWEET16 . يعتمد SWEET16 على أكواد بايت يتم تشغيلها داخل جهاز افتراضي بسيط 16 بت . تم استخدام هذا النموذج بحيث يمكن معالجة الذاكرة من خلال مؤشرات 16 بت غير مباشرة ووظائف رياضية 16 بت محسوبة دون الحاجة إلى ترجمة تلك إلى كود 6502 متعدد التعليمات الأساسي. تمت كتابة الآلة الافتراضية بالكامل في 300 بايت فقط. يمكن للرمز استدعاء SWEET16 عن طريق إصدار مكالمة روتين فرعي ، ثم العودة إلى كود 6502 العادي عند اكتمال عمليات 16 بت. [70]

لم يتم استخدام SWEET16 بواسطة رمز BASIC الأساسي ، ولكن تم استخدامه لاحقًا لتنفيذ العديد من الأدوات المساعدة. من بين هذه الأشياء كان روتين إعادة ترقيم الخط ، والذي تم تضمينه في Programmerer's Aid # 1 ROM ، والذي تمت إضافته إلى طرز Apple II اللاحقة ومتاحًا لتثبيت المستخدم على الأمثلة السابقة. [71]

النقطة العائمة

على الرغم من احتواء Integer BASIC على إجراءات الرياضيات الخاصة بها ، إلا أن ذاكرة القراءة فقط لـ Apple II تضمنت أيضًا مكتبة فاصلة عائمة كاملة موجودة في ذاكرة ROM بين F425-F4FB و F63D-F65D دولارًا. تم تضمين كود المصدر في دليل Apple II. يمكن لبرامج BASIC التي تتطلب حسابات الفاصلة العائمة أن CALLتدخل في هذه الإجراءات. [72]

أداء

نظرًا لأن Integer BASIC قامت بمعالجة المزيد من التعليمات البرمجية المصدر الأصلية إلى رموز مميزة ، كان وقت التشغيل أسرع من الإصدارات التي تتطلب تحليل وقت تشغيل إضافي. للمقارنة ، قامت Tiny BASIC بترميز رقم السطر فقط ، [73] بينما قامت MS BASICs بترميز الكلمات الرئيسية فقط. لذلك ، على سبيل المثال ، في حين أن Integer BASIC ستحول السطر 100 GOTO 200بالكامل إلى رموز يمكن قراءتها وتنفيذها على الفور ، في MS BASIC فقط سيتم ترميز رقم السطر و GOTO ، تم ترك الرقم "200" في تنسيق ASCII الأصلي الخاص به ويجب أن يكون إعادة تحليلها إلى عدد صحيح 16 بت في كل مرة يتم فيها مواجهة السطر. [74]

بالإضافة إلى ذلك ، يوفر العمل فقط مع الرياضيات الصحيحة دفعة كبيرة أخرى في السرعة. ويرجع ذلك إلى أن تنسيق 16 بت الأصغر يتطلب عددًا أقل من عمليات الوصول إلى الذاكرة ، بالإضافة إلى إزالة الحاجة إلى نقل الفاصلة العشرية بعد العمليات الحسابية. نظرًا لأن العديد من معايير الكمبيوتر في ذلك العصر كانت صغيرة وغالبًا ما كانت تؤدي عمليات حسابية بسيطة لا تتطلب الفاصلة العائمة ، فقد تفوقت Integer BASIC على معظم BASICs الأخرى. [س]

في واحدة من أقدم معايير الحواسيب الصغيرة المعروفة ، معايير Rugg / Feldman ، كان Integer BASIC أسرع بمرتين من Applesoft BASIC على نفس الجهاز. [76] في Byte Sieve ، حيث كانت الرياضيات أقل أهمية لكن الوصول إلى الصفيف وأداء الحلقات سيطر ، استغرق Integer BASIC 166 ثانية بينما استغرق Applesoft 200. [77] لم يظهر في Creative Computing Benchmark ، الذي نُشر لأول مرة في 1983 ، بحلول ذلك الوقت لم يعد يتم توفير Integer BASIC افتراضيًا. [78]

سلسلة الاختبارات التالية ، المأخوذة من مقالتي Rugg / Feldman الأصليين ، [76] [75] تُظهر أداء عدد صحيح بالنسبة إلى الأساسي المشتق من MS على نفس المنصة.

نظام وحدة المعالجة المركزية أساسي اختبار 1 اختبار 2 اختبار 3 اختبار 4 اختبار 5 اختبار 6 اختبار 7
التفاح الثاني 6502 @ 1 ميجا هرتز عدد صحيح BASIC 1.3 3.1 7.2 7.2 8.8 18.5 28.0
التفاح الثاني 6502 @ 1 ميجا هرتز التفاح الأساسي 1.3 8.5 16.0 17.8 19.1 28.6 44.8

نموذج كود

ما يلي هو نسخة من Breakout مكتوبة في إصدار 1977 من Integer BASIC لجهاز Apple II ، والذي تم إدراجه في دليل Apple II Mini. [79] هناك عدد من الأخطاء المعروفة في هذا الإصدار. [80]

يبدأ البرنامج بضبط العرض على الشاشة TEXTثم CALL -936مسحها. الخطوط من 20 إلى 27 ، والروتينات الفرعية المرتبطة بها في السطر 100 و 200 ، هي رمز اختيار اللون الذي تم عرضه من Wozniak للوظائف. يقوم السطر 30 بإعداد نافذة النص باستخدام POKE 32,20[p] ثم يستخدم سلسلة من COLORالعبارات VLINلرسم ميدان اللعب وعرض النتيجة في نافذة النص. تمتد الحلقة الرئيسية بأكملها من السطر 40 إلى 90 مع الإجراءات الفرعية المرتبطة. كمية كبيرة أخرى من التعليمات البرمجية بالقرب من نهاية البرنامج تتعلق بطباعة النتيجة النهائية. تشمل الملاحظات الأخرى ذات الأهمية #المقارنات (غير المتكافئة) في السطر 20 ، وإنتاج صوت عالي الطبقة باستخدام سلسلة منPEEKs على السطر 65 مقارنةً بنبرة منخفضة باستخدام حلقة على السطر 70 ، ومزيج من الرسومات والنص على شاشة واحدة. [ف]

5 النص : CALL -936 : VTAB 4 : TAB 10 : PRINT "*** BREAKOUT GAME ***" : PRINT          
7 اطبع "الكائن هو تدمير كل الطوب باستخدام 5 كرات" : بالنسبة إلى العدد = 1 إلى 7000 : NEXT N        
10 DIM A $ ( 20 B $ ( 20 ) : GR : PRINT : INPUT "مرحبًا ، ما اسمك؟" ، A $ : A = 1 : B = 13 : C = 9 : D = 6 : E = 15 : طباعة "ألوان قياسية" ؛ A $ ؛         
20 INPUT "؟" ، B $ : IF B $ # "N" و B $ # "NO" ثم 30 : لأني = 0 إلى 39 : COLOR = I / 2 * ( I < 32 ) : VLIN 0 ، 39 AT أنا                 
25 NEXT I : POKE 34 ، 20 : PRINT : PRINT : PRINT : FOR I = 0 TO 15 : VTAB 21 + I MOD 2 : TAB I + I +1 : PRINT I ؛ : التالي I : POKE 34 ، 22 : VTAB 24 : PRINT : PRINT "BACKGROUND" ؛                            
27 GOSUB 100 : A = E : PRINT "EVEN BRICK" ؛ : GOSUB 100 : B = E : PRINT "ODD BRICK" ؛ : GOSUB 100 : C = E : اطبع "PADDLE" ؛ : GOSUB 100 : D = E : اطبع "الكرة" ؛ : GOSUB 100                       
30 POKE34 ، 20 : COLOR = A : FOR I = 0 إلى 39 : VLIN0 ، 39 ATI : NEXT I : FOR I = 20 إلى 34 الخطوة 2 : TAB I +1 : PRINT I / 2-9 ؛ : COLOR = B : VLIN 0 ، 39 AT I : COLOR = C.       : لـ J = I MOD 4 إلى 39 الخطوة 4      
35 VLIN J ، J +1 AT I : NEXT J ، I : TAB 5 : PRINT "النتيجة = 0" : PRINT : PRINT : POKE 34 ، 21 : S = 0 : P = S : L = S : X = 19 : ص = 19 : س = 19                    
40 لون = أ : قطعة أرض X ، ص / 3 : س = 19 : ص = RND ( 120 ) : V = -1 : W = RND ( 5 ) -2 : L = L +1 : IF L > 5 ثم 140 : علامة التبويب 6 : اطبع "BALL #" ؛ L : اطبع : FOR أنا = 1 إلى 100 : GOSUB 200 : التالي I : M = 1 : N = 0
50 J = Y + W : IF J > = 0 AND J < 120 ثم 60 : W = - W : J = Y : لأني = 1 إلى 6 : K = نظرة خاطفة ( -16336 ) : التالي I                
55 إذا نظرة خاطفة ( -16287 )> 127 ثم SW = 1 - SW    
60 I = X + V : إذا كنت أقل من 0 ثم 400 : GOSUB 200 : COLOR = A : K = J / 3 : IF I > 39 ثم 70 : إذا كان SCRN ( I ، K ) = A ثم 90 : إذا 120 : N = N +1 : V = ( N                       > 9 ) +1 : W = ( K - P ) * 2-5 : M = 1 
65 Z = نظرة خاطفة ( -16336 ) - نظرة خاطفة ( -16336 ) - نظرة خاطفة ( -16336 ) - نظرة خاطفة ( -16336 ) - نظرة خاطفة ( -16336 ) - نظرة خاطفة ( -16336 ) - نظرة خاطفة ( -16336 ) : الذهاب 90     
70 بالنسبة إلى I = 1 إلى 6 : M = نظرة خاطفة ( -16336 ) : التالي I : I = X : M = 0         
80 فولت = - ف 
90 قطعة الأرض X ، Y / 3 : اللون = E : قطعة الأرض I ، K : X = I : Y = J : GOTO 50         
99 طباعة "غير صالح. REENTER" ؛  
100 إدخال "لون (من 0 إلى 15)" ، E : إذا كانت E < 0 أو E > 15 ثم 99 : العودة         
120 إذا كان M ثم V = ABS ( V ) : VLIN K / 2 * 2 ، K / 2 * 2 + 1 AT I : S = S + I / 2-9 : VTAB 21 : TAB 13 : طباعة S               
123 Q = PEEK ( -16336 ) - PEEK ( -16336 ) - PEEK ( -16336 ) - PEEK ( -16336 ) - PEEK ( -16336 ) - PEEK ( -16336 ) - PEEK ( -16336 ) - PEEK ( -16336 ) - نظرة خاطفة ( -16336 ) - نظرة خاطفة ( -16336 )   
124 إذا كانت S > 720 ثم 80    
130 اطبع "مبروك الفوز." : GOTO 150    
140 اطبع "درجتك الخاصة" ؛ S ؛ "هو" ؛ : اذهب إلى 141 + ق / 100    
141 اطبع "رهيب!" : GOTO 150    
142 اطبع "LOUSY". : GOTO 150    
143 اطبع "ضعيف". : GOTO 150    
144 اطبع "FAIR". : GOTO 150    
145 طباعة "جيد". : GOTO 150    
146 اطبع "جيد جدًا." : GOTO 150    
147 اطبع "ممتاز". : GOTO 150    
148 اطبع "بالقرب من الكمال."  
150 طباعة "نفس الألوان" ؛ : اذهب 20    
200 إذا كانت SW ثم 220 : Q = ( PDL ( 0 ) -5 ) / 6 : إذا كانت Q < 0 ثم Q = 0         
205 إذا س > = 34 ثم س = 34 : اللون = D : فلين س ، س +5 في 0 : اللون = أ : إذا كان P > س إذن 210 : إذا س إذن فلين 0 ، س -1 في 0 : ف = س : العودة                       
210 إذا كان P = Q ثم العودة : إذا كان Q # 34 ثم VLIN Q +6 ، 39 AT 0 : P = Q : العودة             
220 Q = ( Y -5 ) / 3 + RND ( 3 ) * SGN ( W ) * ( X < 10 AND V < 0 ) : IF Q < 0 THEN Q = 0 : GOTO 205         
400 لـ I = 1 إلى 80 : Q = نظرة خاطفة ( -16336 ) : التالي I : GOTO 40         

ملاحظات

  1. ^ أو كما قال بيل جيتس ، "BASIC أقوى ... باستخدام النقطة العائمة". [3]
  2. ^ تكلف جهاز IBM 370/155 أكثر من 2 مليون دولار في عام 1970 (ما يعادل 13 مليون دولار في عام 2020). [6]
  3. ^ فرضت Tymshare حوالي 10 دولارات للساعة (ما يعادل 67 دولارًا في عام 2020) للوصول إلى أنظمتها ، [7] بينما يمكن العثور على خدمات أصغر بحوالي 5 دولارات. [8]
  4. ^ لم يكن التعامل مع السلسلة "خاص به" ، ولكنه نفس النظام المستخدم بواسطة HP BASIC.
  5. ^ لتوضيح أي BASIC كان قيد التشغيل ، استخدم Applesoft الموجه].
  6. ^ فيما أشارت إليه MS بشكل أكثر وصفًا باسم " الوضع الفوري ".
  7. ^ يقول Helmers أن أقل رقم سطر هو 1. [26]
  8. ^ ومكسورة تمامًا في بعض الإصدارات. [48]
  9. ^ سمحت HP أيضًا بـ [و] بدلاً من (و).
  10. ^ يتناقض أيضًا مع Dartmouth BASIC الذي استخدمCONVERTالأمر لتحويل سلسلة إلى مجموعة من قيم ASCII التي قام المستخدم بعد ذلك بمعالجتها وتحويلها مرة أخرى إلى تنسيق سلسلة مع ثانيةCONVERT.
  11. ^ يقترح الدليل ، ولكن لا يذكر صراحة ، أن النطاق الفعلي للقيم أقل من 0 إلى 255. [54]
  12. ^ الرقم السالب هو أحد الآثار الجانبية لتخزين الأعداد الصحيحة بتنسيق موقّع ، لذا فإن أي موقع ذاكرة يزيد عن 32767 يظهر كقيمة سالبة في BASIC. [55]
  13. ^ لاحظ الصيغة الفردية لـ SCRN ، وهي دالة تقنيًا لأنها ترجع قيمة ، لكنها لا تستخدم بناء جملة يشبه الوظيفةA=SCRN(X,Y).
  14. ^ تم استخدام الرقم الأول من القيمة الأصلية لتحديد قيمة من 0 إلى 9 ، لذلك في هذا المثال ، سيكون الرمز المميز هو B5 دولار للرقم الأول من 500.
  15. ^ اشتكى بيل جيتس من هذا الأمر ، مشيرًا إلى أنه من غير العدل مقارنة Integer BASIC بـ BASIC "الحقيقي" مثل MS. [75]
  16. ^ بمعنى أن النص يبدأ في السطر 20 من 24 سطراً على الشاشة ، تاركاً أربعة أسطر من النص في الأسفل.
  17. ^ للحصول على قائمة بمختلف CALLs و PEEKs و POKEs التي نفذت عمليات مشتركة على Apple II ، انظر Peeks و Pokes و Calls And Programming Notes ، Charles Turley ، 15 December 1996.

المراجع

الاقتباسات

  1. ^ a b c d e f g h i وزنياك 2014 .
  2. ^ أ ب ويريش 2001 .
  3. ^ روج ، توم. فيلدمان ، فيل (أكتوبر 1977). "مقارنات توقيت أساسية ... منقحة ومحدثة" . كيلوبود . ص 20 - 25.
  4. ^ بوم ، ألان (18 يوليو 2016). "التاريخ الشفوي لألين باوم" (مقابلة). أجرى المقابلة ديفيد بروك. ص. 12.
  5. ^ "اجتياز علامة العشر سنوات" . مجلة MEASURE . هيوليت باكارد. أكتوبر 1976.
  6. ^ كوني ، مايكل. "التاريخ الرائع (في الغالب) لحاسوب IBM المركزي" . ARN .
  7. ^ بورن ، تشارلز ؛ هان ، ترودي بيلاردو (أغسطس 2003). تاريخ خدمات المعلومات عبر الإنترنت ، 1963-1976 . ص. 387. ISBN 9780262261753.
  8. ^ باري ، تيم (27 أبريل 1981). "الرجوع إلى الأساسي" . إنفوورلد . ص. 7.
  9. ^ أ ب ويليامز ومور 1984 ، ص. أ 71.
  10. ^ فيسك ، ناثان (2009). فهم القرصنة على الإنترنت . ABC-CLIO. ص. 14. ISBN 9780313354748.
  11. ^ وزنياك 1977 .
  12. ^ Weyhrich 2001 ، [عدد صحيح] BASIC ، الذي قمنا بشحنه مع أول Apple II ، لم يتم تجميعه أبدًا - على الإطلاق. كانت هناك نسخة واحدة مكتوبة بخط اليد ، وكلها مكتوبة بخط اليد ، وكلها مجمعة يدويًا ..
  13. ^ "مشروع Apple 1" .
  14. ^ "إعلان كمبيوتر Apple I" .
  15. ^ بونيل ، ديفيد (سبتمبر 1975). "عبر مكتب المحرر" . ملاحظات الكمبيوتر . البوكيرك نيو مكسيكو: MITS. 1 (4): 2. مؤرشفة من الأصلي في 23 مارس 2012.
  16. ^ "Classic Gaming: A Complete History of Breakout" . GameSpy. مؤرشفة من الأصلي في 8 يوليو 2012 . تم الاسترجاع 19 أبريل ، 2010 .
  17. ^ راسكين ، روي ؛ وزنياك ، ستيفن (أغسطس 1976). "إجراءات النقطة العائمة لـ 6502" . دكتور دوب . ص 17 - 19.
  18. ^ دليل مرجعي Apple II . كومبيوتر ابل. يناير 1978 ص 94-95.
  19. ^ أ ب وزنياك 2018 .
  20. ^ هيرتسفيلد 1985 .
  21. ^ راسكين 1978 ، ص. 11.
  22. ^ راسكين 1978 ، ص. 12.
  23. ^ راسكين 1978 ، ص. 46.
  24. ^ راسكين 1978 ، ص 49-55.
  25. ^ راسكين 1978 ، ص. 48.
  26. ^ أ ب هيلمرز 1978 ، ص. 24.
  27. ^ أ ب راسكين 1978 ، ص. 118.
  28. ^ راسكين 1978 ، ص 65-67.
  29. ^ راسكين 1978 ، ص. 124.
  30. ^ Wozniak 1977 ، "يوفر هذا الوضع المختلط شبكة رسومات ملونة 40 × 40 بالإضافة إلى أربعة أسطر من نص التمرير في أسفل الشاشة.".
  31. ^ راسكين 1978 ، ص. 100.
  32. ^ راسكين 1978 ، ص. 15.
  33. ^ راسكين 1978 ، ص. 52.
  34. ^ راسكين 1978 ، ص. 107.
  35. ^ راسكين 1978 ، ص 100 ، 101.
  36. ^ راسكين 1978 ، ص. 38.
  37. ^ راسكين 1978 ، ص. 27.
  38. ^ راسكين 1978 ، ص. 61.
  39. ^ راسكين 1978 ، ص. 94.
  40. ^ راسكين 1978 ، ص. 40120.
  41. ^ راسكين 1978 ، ص. 40.
  42. ^ "سلاسل" . learn-c.org .
  43. ^ بروكس ، ستيف. "الشخصيات والسلاسل في فورتران" (PDF) . جامعة هاواي .
  44. ^ "عدد صحيح ونقطة عائمة ومتغيرات سلسلة". دليل مبرمج C64 . العميد البحري.
  45. ^ North Star BASIC الإصدار 6 (PDF) . شركة نورث ستار. 1977.
  46. ^ الدليل المرجعي ATARI BASIC . شركة أتاري 1980.
  47. ^ أ ب راسكين 1978 ، ص. 89.
  48. ^ "أنشئ الإصدار الخاص بك من Microsoft BASIC" .
  49. ^ أ ب راسكين 1978 ، ص. 88.
  50. ^ راسكين 1978 ، ص. 92.
  51. ^ دليل أساسي Altair 8080 (PDF) . ميتس. أبريل 1977. ص. 30.
  52. ^ أ ب ج د راسكين 1978 ، ص. 120.
  53. ^ ميني 1977 ، ص. 17.
  54. ^ أ ب راسكين 1978 ، ص. 36.
  55. ^ ميني 1977 ، ص. 18.
  56. ^ راسكين 1978 ، ص. 84.
  57. ^ راسكين 1978 ، ص. 31.
  58. ^ راسكين 1978 ، ص. 32.
  59. ^ راسكين 1978 ، ص. 33.
  60. ^ راسكين 1978 ، ص. 73.
  61. ^ راسكين 1978 ، ص. 74.
  62. ^ الدليل المرجعي الأساسي أتاري (PDF) . أتاري. 1983. ص. 25.
  63. ^ North Star BASIC الإصدار 6 (PDF) . شركة نورث ستار. 1977. ص. 8.
  64. ^ أ ب ج د إي وزنياك 1977 ، ص. 42.
  65. ^ هيلمرز 1978 ، ص. 18.
  66. ^ "دليل مستخدمي APPLE الأساسيين الأساسيين" .
  67. ^ "دليل البرمجة الأساسية لـ APPLE II" .
  68. ^ "دليل مرجع APPLE II" (PDF) .
  69. ^ بول ر. سانتا ماريا. "تفكيك Apple II Integer Basic" (PDF) . تم الاسترجاع 2020/09/14 .
  70. ^ وزنياك 1977 ، ص. 43.
  71. ^ مساعدة مبرمجي Apple (PDF) . تفاح. 1978.
  72. ^ دليل مرجعي Apple II (PDF) . يناير 1978 ص 94-95.
  73. ^ أليسون ، دينيس (1976). "بناء الأساسي الخاص بك" . مجلة الدكتور دوب . المجلد. 1 ، لا. 1. ص. 11.
  74. ^ هاردمان ، روجر. "Altair BASIC 3.2 (4K) - التفكيك المشروح" . ص. 1.11. مؤرشفة من الأصلي في 5 نوفمبر 2001.
  75. ^ أ ب روج ، توم ؛ فيلدمان ، فيل (أكتوبر 1977). "مقارنات توقيت أساسية ... منقحة ومحدثة" . كيلوبود . ص 20 - 25.
  76. ^ أ ب روج ، توم ؛ فيلدمان ، فيل (يونيو 1977). "مقارنات أساسية للتوقيت ... معلومات عن نزوات السرعة" . كيلوبود . ص 66-70.
  77. ^ جيلبريث ، جيم (سبتمبر 1981). "معيار اللغة رفيع المستوى" . بايت . ص. 192.
  78. ^ أهل ، ديفيد (نوفمبر 1983). "اختبار المقارنة المعيارية" . الحوسبة الإبداعية . ص. 260.
  79. ^ ميني 1977 ، ص 65-67.
  80. ^ "Breakout، Annotated" . جيثب . 16 أغسطس 2021.

ببليوغرافيا

روابط خارجية

0.074156045913696