--- title: Apple II 軟體 image: https://imgur.com/gallery/z9wh39H description: 關於 Apple ][ 的資料整理, 參考臉書社團 "台灣 Apple II 同學會" https://www.facebook.com/groups/taiwanappleii --- # Apple II 軟體 Apple II 官方文件 - 軟體相關 --- * [The Applesoft Tutorial](https://archive.org/stream/The_Applesoft_Tutorial) * [Apple II BASIC Programming Manual .pdf](http://cini.classiccmp.org/pdf/Apple/Apple%20II%20Basic%20Programming%20Manual.pdf) * [Applesoft BASIC Programming Reference Manual](https://www.scribd.com/doc/232832/Applesoft-Basic-Programming-Reference-Manual) OS 類 - System ROM / Monitor / 機器語言 / 組合語言 --- * 進入 / 離開 Apple Monitor * CALL-151 - 從 DOS 進入 Monitor * CTRL+B 從 MONITOR 回到 DOS BASIC * CTRL+C 從 MONITOR 重回到 DOS BASIC * 3D0G 同樣功能,從 MONITOR 回到 DOS BASIC (待確定) * Apple Monitor 指令 * [Apple Monitor 指令彙總](http://www.easy68k.com/paulrsm/6502/MONREF.HTM) * 常用 Apple Monitor 指令 (以下位址都是以 16 進位表示, 無須附加 $ 或 H 於英數字前後) * {adrs} - 檢查 adrs 位址的內容值 * {adrs1}.{adrs2} - 檢視 adrs1 到 adrs2 位址的內容值 * {adrs}:{val} {val} ... - 修改 RAM 位址內容 * {adrs}L - 列出 adrs 位址的反組譯語言 (disassembly) 內容 * {adrs}G - 從 adrs 位址執行機器語言 * {dest}<{start}.{end}M - 複製 {start}.{end} 範圍的內容值到 {dest} 為首的位址. (M=move) * {dest}<{start}.{end}V - 比較 {start}.{end} 範圍的內容值到 {dest} 為首的位址. (V=Verify) * Control-B - 回到 Apple BASIC (ROM cold start at $E000). * Control-C - 重新回到 Apple BASIC (ROM warm start at $E003). * Apple Monitor 下可使用程式範圍 * $0300 - $03CF * $0C00 - $1FFF : 如果 BASIC 程式太長或是變數太多, 此段程式可能會被覆蓋 * 6502 assembly * [Assembly Cookbook for Apple II/IIe](https://mirrors.apple2.org.za/ftp.apple.asimov.net/documentation/programming/6502assembly/Assembly_Cookbook_for_the_Apple_II_IIe.pdf) * 第 216 頁的 empty shell 程式提供了撰寫 assembly 的標準環境, 包括環境參數的設定 * [6502 CPU 指令集](https://www.masswerk.at/6502/6502_instruction_set.html) * [6502 Assembly 檔案集錦](https://www.apple.asimov.net/documentation/programming/6502assembly/) * [APPLE II 的 CALL, PEEK, POKE 詳細列表連結](http://web.archive.org/web/20090315100335/http://www.skepticfiles.org/cowtext/apple/memorytx.htm), 或是 [Stackoverflow 說明](https://stackoverflow.com/questions/143374/call-151-what-did-it-do-on-the-apple) * 常用的 CALL, PEEK, POKE 列表 * CALL-151 進入系統 ROM 的 MONITOR * CALL-198 發聲 (同 CONTROL+G 功能) * [James Davis 完整復現 Apple II+ ROM 的反組譯程式](https://6502disassembly.com/a2-rom/) * [Apple II+ ROM 內容\$C000-\$FFFF](https://6502disassembly.com/a2-rom/APPLE2.ROM.html) * [下載 .ZIP](https://6502disassembly.com/a2-rom/Apple%20II%20Plus%20ROM%20Disassembly.zip) * [Apple II 系統軟體逆向工程原始碼 - 網頁說明](http://cmosher01.github.io/Apple-II-Source/) * [github 原始碼 - 包含 System ROM 及 DOS 3.3](https://github.com/cmosher01/Apple-II-Source) * 原始碼由 [GNU M4](https://www.gnu.org/software/m4/manual/m4.html) 預處理, [xa65 Assembler](http://www.floodgap.com/retrotech/xa/) 解譯. OS 類 - DOS 3.3 及 ProDOS --- * [DOS 指令及 FAQ](https://fjkraan.home.xs4all.nl/comp/apple2faq/app2doscmdfaq.html) * CATALOG - Shows a directory listing. * CATALOG D2 - 顯示第二個磁碟機目錄 * LOAD filename - Loads a Applesoft BASIC program. * SAVE filename - Saves a Applesoft BASIC program. * RUN filename - Loads and runs a Applesoft BASIC program. * BLOAD filename - Loads a binary file. * BLOAD filename,Addr 出現 SYNTAX ERROR, 奇怪 * BSAVE filename,Aaddr,Llen - Saves a binary file. * BRUN filename - Loads and executes a binary file * OPEN filename - Opens a text file. For BASIC programs only. * CLOSE [filename] - Closes specified (or all) open text files. * READ filename - Reads from a text file. For BASIC programs only. * [ProDOS - Professional Disk Operating System](https://prodos8.com/about/) OS 類 - Apple BASIC --- * [Apple II BASIC Programming Manual .pdf](http://cini.classiccmp.org/pdf/Apple/Apple%20II%20Basic%20Programming%20Manual.pdf) * 基本 BASIC 指令 * NEW - 清除程式 * LIST - 列印程式 (於螢幕上顯示) * RUN - 執行程式 * [Microsoft BASIC for 6502 Original Source Code - 1978](https://www.pagetable.com/?p=774): original 1978 source code of Microsoft BASIC for 6502 with all original comments, documentation and easter eggs - [M6502.MAC](https://www.pagetable.com/docs/M6502.MAC.txt) (1978-07-27, 6955 lines, 161,685 bytes) 應用類 - 質數問題的 Apple BASIC 與 Assembly 速度比較 --- * 找出質數數量的程式來比較 Assembly 跟 BASIC 執行速度上的差別 - 50 倍 * [github - Apple BASIC vs 6502 Assembly](https://github.com/marconi1964/AppleBASICvs6502Assembly) 遊戲類 --- * [Lode Runner](/@AppleIITaiwan/LodeRunner)