まずAS68Kで処理したときのアセンブルエラーの除去から。
これは意外と単純で
これは意外と単純で
(1)ソース中の数式に括弧が使えない × DC.B 'LIS',('T'+$80) ↓ ○ DC.B 'LIS','T'+$80 (2)ラベル名に「.」が使えない × TAB1.1 DC.W LIST ↓ ○ TAB1_1 DC.W LIST (3)イミディエイト処理のニーモニックに「I」が必要 × CMP.B #27,D0 ↓ ○ CMPI.B #27,D0このソース修正で最初200行以上あったエラーが全てなくなりました
次にハードウェアに合わせるカスタマイズです
(1)コードのスタートアドレスを変更(とりあえずRAM上に配置) ORG $900 first free address using Tutor ↓ ORG $40000 first free address using Tutor (2)ユーザメモリの底を変更 ENDMEM DC.L $8000 end of available memory ↓ ENDMEM DC.L $7ff00 end of available memory (3)シリアル入出力をデバイスに合わせて変更(MC6850→MC68901) OUTC BTST #1,$10040 is port 1 ready for a character? BEQ OUTC if not, wait for it MOVE.B D0,$10042 out it goes. RTS ↓ OUTC BTST #7,tsr is port 1 ready for a character? BEQ OUTC if not, wait for it MOVE.B D0,udr out it goes. RTS INC BTST #0,$10040 is character ready? BEQ INCRET if not, return Zero status MOVE.B $10042,D0 else get the character AND.B #$7F,D0 zero out the high bit RTS ↓ INC BTST #7,rsr is character ready? BEQ INCRET if not, return Zero status MOVE.B udr,D0 else get the character AND.B #$7F,D0 zero out the high bit RTS
これでOKのはずなのですが・・・