ระบบไฟล์หรือระบบปฏิบัติการใด ๆ ที่คุณต้องการพูดคุยก็ดีด้วย ดี!
บน ZX Spectrum การกำหนดค่าเริ่มต้นให้LOAD
คำสั่งจะทำให้ระบบเข้าสู่ลูปที่แน่นอ่านค่า Audio In line
จุดเริ่มต้นของข้อมูลถูกระบุด้วยโทนเสียงคงที่และหลังจากนั้นตามลำดับของพัลส์ยาว / สั้นตามมาโดยที่พัลส์สั้นสำหรับไบนารี0
และอีกอันหนึ่งสำหรับไบนารี1
( https://en.wikipedia.org/ wiki / ZX_Spectrum_software ) วงโหลดที่แน่นจะรวบรวมบิตจนกว่าจะเติมไบต์ (8 บิต) เก็บสิ่งนี้ไว้ในหน่วยความจำเพิ่มตัวชี้หน่วยความจำจากนั้นวนกลับเพื่อสแกนหาบิตเพิ่มเติม
โดยทั่วไปสิ่งแรกที่โหลดเดอร์จะอ่านคือส่วนหัวของรูปแบบที่สั้นและคงที่ซึ่งระบุอย่างน้อยจำนวนไบต์ที่คาดหวังและอาจเป็นข้อมูลเพิ่มเติมเช่นชื่อไฟล์ประเภทไฟล์และที่อยู่โหลด หลังจากอ่านส่วนหัวสั้นนี้โปรแกรมสามารถตัดสินใจว่าจะโหลดข้อมูลจำนวนมากหรือออกจากชุดคำสั่งโหลดและแสดงข้อความที่เหมาะสมสำหรับผู้ใช้
สถานะ End-of-file สามารถรับรู้ได้โดยรับเป็นจำนวนมากตามที่คาดไว้ (ทั้งจำนวนคงที่จำนวนไบต์, เดินสายในซอฟต์แวร์หรือหมายเลขตัวแปรเช่นที่ระบุไว้ในส่วนหัว) เกิดข้อผิดพลาดหากการวนซ้ำการโหลดไม่ได้รับพัลส์ในช่วงความถี่ที่คาดไว้เป็นระยะเวลาหนึ่ง
พื้นหลังเล็กน้อยในคำตอบนี้
ขั้นตอนที่อธิบายจะโหลดข้อมูลจากเทปเสียงปกติ - ดังนั้นจึงจำเป็นต้องสแกนสัญญาณเสียงเข้า (เชื่อมต่อกับเครื่องบันทึกเทปแบบปลั๊ก - ปลั๊กมาตรฐาน) LOAD
คำสั่งเป็นเทคนิคเดียวกับopen
ไฟล์ - แต่มันเชื่อมโยงทางร่างกายจริงโหลดไฟล์ นี่เป็นเพราะคอมพิวเตอร์ไม่ได้ควบคุมเครื่องบันทึกเทปและคุณไม่สามารถเปิดไฟล์ได้สำเร็จ แต่ไม่สามารถโหลดได้
"tight loop" ถูกกล่าวถึงเนื่องจาก (1) CPU, Z80-A (ถ้าใช้หน่วยความจำ), ช้ามาก: 3.5 MHz และ (2) Spectrum ไม่มีนาฬิกาภายใน! นั่นหมายความว่ามันจะต้องรักษานับT-state (เวลาการสอน) ให้ถูกต้องทุกครั้ง เดียว คำแนะนำ. ภายในวงนั้นเพียงเพื่อรักษาจังหวะบี๊ปที่ถูกต้อง
โชคดีที่ความเร็วของ CPU ต่ำมีข้อได้เปรียบที่แตกต่างกันซึ่งคุณสามารถคำนวณจำนวนรอบบนกระดาษหนึ่งแผ่นและเวลาโลกแห่งความจริงที่พวกเขาจะทำ
C
และ Linux; ตั้งแต่สิ่งที่ Linux และ Windows แตกต่าง มิฉะนั้นมันจะกว้างเกินไป นอกจากนี้ภาษาระดับสูงกว่าจะจบลงด้วยการเรียก C API สำหรับระบบหรือการคอมไพล์ลงไปที่ C เพื่อดำเนินการดังนั้นการออกจากระดับ "C" จะถูกวางไว้ที่ Least Common Denominator