apple1emu.asm

俯瞰てきに眺めてみる。とりあえず

  • pyz80 の pass な挙動が理解できてない
  • 同時に定数の評価なナニがイメージできてない

あたりはスルーって事で。
あと微妙ですが以下なソレをリファレンスに使用

  • www.onlyme.sakura.ne.jp/kl5c8012meireisetumeisyo.pdf
  • 最初らへんで global な定数が申し述べられている
    • global な変数云々について若干理解できてない部分あり
  • 次のナニで main loop っぽいソレが定義
    • load_state して
    • execute して
    • save_state して

って事なんですが、reset_loop 微妙だな。そもそも ei って何だ。

def op_EI(p,opargs):
    return op_noargs_type(p,opargs,[0xfb])

翻訳系のソース持ってると便利ですな。0xfb は何か、というとここによれば Enable Interruput なのか。0xf3 が Disable Interrupt になるんかな。
割り込み云々って kernel のナニ以来ですな。

コメントには_Utitlity functions_とあります。なんかコメント的には画面周りの云々なコメントに見えますな (最初らへん)。
次に出てくるのが_Interrupt Handling_なブロック。俯瞰って事で割り込み制御なのね、と言いつつ次に出てくるのが_65C02 emulation_なブロック。
ここで execute な入口が出てきてます。あー以下なあたり

               call load_state
               call execute         ; GO!
               call save_state

もう少しきちんと見ないと駄目だな。あと最後らへんなんですが、

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 ; Instruction implementations
 INC "opimpl.inc"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

という興味深いナニが include されてたりとか以降で

 ; Woz Monitor ROM (&ff00-&ffff)
 ; May be overwritten by includes below
 dump &ff00
 MDAT "apple1.rom"

とか

; Use RAM-based Applesoft BASIC by default
IF 1
    ; Applesoft BASIC [Lite] (6000-7FFF)
    ; http://cowgod.org/replica1/applesoft/
    dump low_page,&6000
    MDAT "applesoft-lite-0.4-ram.bin"
ELSE
    ; Lee Davidson's Enhanced BASIC (5800-77CE)
    ; http://members.lycos.co.uk/leeedavison/6502/ehbasic/
    dump low_page,&5800
    MDAT "ehbasic.bin"
ENDIF

とか

; Use Ken Wessen's BASIC+assembler by default
IF 1
    ; Ken Wessen's custom BASIC + Krusader assembler + enhanced monitor (E000-FFFF)
    ; BRK handler points to mini-monitor in this version
    ; http://school.anhb.uwa.edu.au/personalpages/kwessen/apple1/Krusader.htm
    dump &e000
    MDAT "65C02.rom.bin"
ELSE
    ; Applesoft BASIC [Lite] + Woz monitor (E000-FFFF)
    ; http://cowgod.org/replica1/applesoft/
    dump &e000
    MDAT "applesoft-lite-0.4.bin"
ENDIF

みたいな事されてて Woz monitor 使いたい、って使い方微妙ですが。

そりゃ良いのですが

apple1emu だけで当分弄れる遊び道具なんですが。

追補

  • www.onlyme.sakura.ne.jp/kl5c8012meireisetumeisyo.pdf

上記のマニュアル、備忘にてリンクを残しておきます。