आप जिस भी फाइल सिस्टम या ऑपरेटिंग सिस्टम के बारे में बात करना चाहते हैं, वह मेरे द्वारा ठीक है। अच्छा!
एक ZX स्पेक्ट्रम पर, एक LOAD
कमांड को इनिशियलाइज़ करने से सिस्टम को एक तंग लूप में डाल दिया जाएगा, ऑडियो इन लाइन को पढ़ना।
स्टार्ट-ऑफ डेटा को एक स्थिर टोन द्वारा इंगित किया जाता है, और उसके बाद लंबी / छोटी दालों का एक क्रम चलता है, जहां एक बाइनरी के लिए एक शॉर्ट पल्स होता है 0
और बाइनरी के लिए एक लंबा होता है 1
( https://en.wikipedia.org/ wiki / ZX_Spectrum_software )। तंग लोड लूप बिट्स को इकट्ठा करता है जब तक कि यह बाइट (8 बिट्स) भरता है, इसे मेमोरी में संग्रहीत करता है, मेमोरी पॉइंटर को बढ़ाता है, फिर अधिक बिट्स के लिए स्कैन करने के लिए वापस लूप करता है।
आमतौर पर, एक लोडर जो पहली चीज पढ़ता है वह एक छोटा, निश्चित प्रारूप हैडर होता है , जो कम से कम बाइट्स की अपेक्षा करता है, और संभवतः अतिरिक्त जानकारी जैसे फ़ाइल नाम, फ़ाइल प्रकार और लोडिंग पता दर्शाता है। इस छोटे हेडर को पढ़ने के बाद, प्रोग्राम यह तय कर सकता है कि डेटा के मुख्य थोक को लोड करना जारी रखना है, या लोडिंग रूटीन से बाहर निकलें और उपयोगकर्ता के लिए एक उपयुक्त संदेश प्रदर्शित करें।
एंड-ऑफ-द-फ़ाइल स्थिति को अपेक्षित के रूप में कई बाइट्स प्राप्त करके पहचाना जा सकता है (या तो बाइट्स की एक निश्चित संख्या, सॉफ़्टवेयर में हार्डवेर, या एक वैरिएबल संख्या जैसे कि हेडर में इंगित किया गया है)। लोडिंग लूप को एक निश्चित समय के लिए अपेक्षित फ़्रीक्वेंसी रेंज में पल्स प्राप्त नहीं होने पर एक त्रुटि डाली गई थी।
इस उत्तर पर थोड़ा पृष्ठभूमि
वर्णित प्रक्रिया एक नियमित ऑडियो टेप से डेटा लोड करती है - इसलिए ऑडियो को स्कैन करने की आवश्यकता है (यह एक मानक प्लग से टेप रिकॉर्डर से जुड़ा है)। एक LOAD
कमांड तकनीकी रूप से open
एक फ़ाइल के समान है - लेकिन यह शारीरिक रूप से वास्तव में फ़ाइल को लोड करने के लिए बंधा हुआ है । ऐसा इसलिए है क्योंकि टेप रिकॉर्डर कंप्यूटर द्वारा नियंत्रित नहीं है, और आप (सफलतापूर्वक) एक फ़ाइल नहीं खोल सकते हैं, लेकिन इसे लोड नहीं कर सकते हैं।
"तंग लूप" का उल्लेख किया गया है क्योंकि (1) सीपीयू, एक Z80-A (यदि मेमोरी कार्य करता है), वास्तव में धीमा था: 3.5 मेगाहर्ट्ज, और (2) स्पेक्ट्रम में कोई आंतरिक घड़ी नहीं थी! इसका मतलब है कि इसे हर राज्य के लिए टी-स्टेट्स (निर्देश समय) की सही गणना करनी थी । एक। अनुदेश। उस लूप के अंदर, बस सटीक बीप टाइमिंग बनाए रखने के लिए।
सौभाग्य से, उस कम सीपीयू की गति का विशिष्ट लाभ था कि आप कागज के एक टुकड़े पर चक्रों की संख्या की गणना कर सकते थे, और इस प्रकार वास्तविक दुनिया का समय जो वे लेंगे।
C
और लिनक्स पर ध्यान केंद्रित करने के लिए ; चूंकि लिनक्स और विंडोज क्या करते हैं। अन्यथा, यह थोड़ा व्यापक है। इसके अलावा, किसी भी उच्च स्तरीय भाषा को सिस्टम के लिए या तो C एपीआई या कॉल करने के लिए C को संकलित करने के लिए समाप्त करना होगा, इसलिए "C" के स्तर पर छोड़ते हुए इसे Least Common Denominator पर रखा जाएगा।