PC-8001のZ80は8080由来のIOはメモリと別の256のアドレス空間に置けます。
通常この空間に8251や8255をおくわけですが、Z80からINしたときにそのアドレスになにもなくてDATAの信号線がプルアップされていればINは255を返すはずです。
ところがPC-8001のN-BASICで何もいないアドレスをアクセスするとそのアドレスが返ってきます。
? INP(254)
254
以下のようなアセンブラでUSRで拾ってみると120が返ってきます。
1: ;
2: ; PC-8001 assembra
3: ;
4:
5:
6: - E800' ORG 0E800H
7: - E800' USR:
8: 0+7 E800' 4E LD C,(HL)
9: 7+12 E801' ED78 IN A, (C)
10: 19+7 E803' 77 LD (HL), A
11: 26+10 E804' C9 RET
謎仕様です。
初期のマイコンIOチップの8251や8255などにはIDのようなものを返す機能がありませんでした。このため255が返ってきたときにチップが返したのか、誰もいなくてプルアップが返したのか判別できませんでした。
8086の頃にPlug And Playが出てきてCPUがどんなデバイスがいるのか知ることができるようになりました。