6502 মেশিনের ভাষা + অ্যাপল] [+ রম, 12 (11? 10? 9?) বাইট
CE 06 80 F0 01 A2 0B A9 00 4C 24 ED
শুরু করা উচিত $8000
। গণনা 0 এ পৌঁছালে সিস্টেম মনিটরে ক্রাশ হয়।
C6 B6 F0 01 A2 0B A9 00 4C 24 ED
শুরু করা উচিত $B1
। এটি একটি বাইট সংরক্ষণ করে যেহেতু আমি (দুই-বাইট) শূন্য পৃষ্ঠার সংস্করণটি ব্যবহার করতে পারি DEC
, তবে অ্যাপলসফটের সমালোচনামূলক রুটিনটিকে ওভাররাইট করে CHRGET
; আপনাকে এটি লোড করতে হবে এবং মনিটর থেকে কল করতে হবে এবং আপনার কাজ শেষ হয়ে গেলে বেসিকটিকে পুনরায় শুরু করতে CTRL+ ব্যবহার BReturnকরতে হবে। এটি এটিকে অবৈধ করে কিনা তা নিশ্চিত নয়।
CE 06 80 F0 01 A2 0B 4C 26 ED
শুরু করা উচিত $8000
। এটি আরম্ভ হয় না $9E
, দুটি বাইট সংরক্ষণ করে। যাইহোক, এর অর্থ এটি আপনাকে একটি নেতিবাচক ঠিকানা দিয়ে কল করবেন না (বা, আপনি যদি মনিটরের কাছ থেকে কল করেন, আপনাকে মনিটরের একটি ইতিবাচক ঠিকানা দিয়ে কল করতে হবে)। যদি আপনি না, Applesoft এর CALL
রুটিন সংরক্ষণ করবে FF
মধ্যে $9E
, যখন এটি মুদ্রণ নম্বরে 65280 যোগ করার জন্য সৃষ্টি হয়। আবার, নিশ্চিত না যে এটি সমাধানটিকে অকার্যকর করে কিনা।
C6 B6 F0 01 A2 0B 4C 26 ED
শুরু করা উচিত $B1
। এটি উপরের দুটি প্রোগ্রামের সংমিশ্রণ, মোট তিনটি বাইট সংরক্ষণ করে; আপনাকে মনিটরকে একটি ইতিবাচক ঠিকানা দিয়ে কল করতে হবে, এটিকে লোড করুন এবং সেখান থেকে এটি চালাতে হবে এবং আপনার কাজ শেষ হয়ে গেলে বেসিকটিকে পুনরায় আরম্ভ করার জন্য Ctrl+ ব্যবহার BReturnকরতে হবে।
নোট করুন যে এই প্রোগ্রামগুলি কেবল মেমরিতে প্রোগ্রাম পরিবর্তন করে; ডিস্ক থেকে প্রোগ্রামটি পুনরায় লোড করা গণনা পুনরায় সেট করবে। এটি কাজ করে কারণ অ্যাপল] [(এবং] [+, // ই, এবং // সি) এর যা মেমরি সুরক্ষা সিস্টেম নেই; প্রোগ্রামটি (এবং এর স্ব-পরিবর্তনগুলি) প্রস্থান করার পরেও মেমরিতে থাকবে, যাতে আপনি অন্য কিছু দিয়ে সেই স্মৃতিটিকে ওভাররাইট না করা পর্যন্ত আপনি এটিকে মেমরি থেকে চালিয়ে যেতে পারেন can
নমুনা রান
]BLOAD COUNT THEN BRK
]CALL 32768
10
]CALL 32768
9
]CALL 32768
8
]CALL 32768
7
]CALL 32768
6
]CALL 32768
5
]CALL 32768
4
]CALL 32768
3
]CALL 32768
2
]CALL 32768
1
]CALL 32768
8008- A=80 X=9D Y=00 P=36 S=EE
*
ব্যাখ্যা
DEC NUM+1 ; Decrement the LDX instruction's operand
BEQ NUM+1 ; If it is now zero, branch to it; 00 is the opcode for the BRK instruction, which causes the program to crash to the monitor
NUM LDX #$0B ; Load the X register with 0x0A; the operand has already been decremented once
LDA #$00 ; Load the accumulator with 0
JMP $ED24 ; Jump to $ED24, an Applesoft ROM routine which prints A (high byte),X (low byte) in decimal
10 বাইট সংস্করণ ব্যাখ্যা
DEC NUM+1 ; Decrement the LDX instruction's operand
BEQ NUM+1 ; If it is now zero, branch to it; 00 is the opcode for the BRK instruction, which causes the program to crash to the monitor
NUM LDX #$0B ; Load the X register with 0x0A; the operand has already been decremented once
JMP $ED26 ; Jump to $ED26, which is two bytes into the Applesoft routine at $ED24. The two skipped bytes would store the accumulator in $9E
ভেরিয়েন্ট
প্রিন্ট ERR
এবং বিপগুলি গণনা 0 এ পৌঁছালে
সাধারণ - 15 বাইট
CE 06 80 F0 07 A2 0B A9 00 4C 24 ED 4C 2D FF
ওভাররাইটস CHRGET
- 14 বাইট
C6 B6 F0 07 A2 0B A9 00 4C 24 ED 4C 2D FF
আরম্ভ হয় না $9E
- 13 বাইট
CE 06 80 F0 05 A2 0B 4C 26 ED 4C 2D FF
ওভাররাইটগুলি CHRGET
এবং আরম্ভ হয় না $9E
- 12 বাইট
C6 B6 F0 05 A2 0B 4C 26 ED 4C 2D FF
গণনা 0 এ পৌঁছালে স্থির হয়ে যায়
সাধারণ - 12 বাইট
CE 06 80 F0 FE A2 0B A9 00 4C 24 ED
ওভাররাইটস CHRGET
- 11 বাইট
C6 B6 F0 FE A2 0B A9 00 4C 24 ED
আরম্ভ নয় $9E
- 10 বাইট
CE 06 80 F0 FE A2 0B 4C 26 ED
ওভাররাইটগুলি CHRGET
এবং আরম্ভ হয় না $9E
- 9 বাইট
C6 B6 F0 FE A2 0B 4C 26 ED