0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PC-8001 N-BASICの093AHルーチンは「引用」可能なのか

Last updated at Posted at 2025-07-15

昨日の記事の続きだが、日本の著作権法において、PC-8001 N-BASICの各ルーチンが「思想」を表現した著作物であるならば、その「引用」(著作権法第32条)は可能なのか。

  • 093AH 画面幅設定

を例に、少し考えてみよう。

093A E5     PUSH HL
093B C5     PUSH BC
093C 79       LD A,C
093D CDD709 CALL 09D7H
0940 C1      POP BC
0941 78       LD A,B
0942 CDA309 CALL 09A3H
0945 AF      XOR A,A
0946 CDC907 CALL 07C9H
0949 E1      POP HL
094A C9      RET

ざっと読めばわかる通り、Cレジスタの値をAレジスタに移して09D7Hルーチンを呼び出し、次にBレジスタの値をAレジスタに移して09A3Hルーチンを呼び出し、最後にAレジスタに00Hを入れて07C9Hルーチンを呼び出している。これだけでは、何のことだかサッパリわからない。つまり、093AHルーチンの「思想」を「引用」するためには、09D7Hルーチンの「思想」と、09A3Hルーチンの「思想」と、07C9Hルーチンの「思想」が必要だということである。ならば、09D7Hルーチンを見てみよう。

09D7 FE19     CP A,19H
09D9 2071     JR NZ,0A4CH
09DB CDDD04 CALL 04DDH
09DE F5     PUSH AF
09DF 3D      DEC A
09E0 CD6406 CALL 0664H
09E3 F1      POP AF
09E4 FE19     CP A,19H
09E6 280E     JR Z,09F6H
09E8 CD5104 CALL 0451H
09EB 3C      INC A
09EC FE19     CP A,19H
09EE 38F8     JR C,09E8H
09F0 3262EA   LD (EA62H),A
09F3 CDC907 CALL 07C9H
09F6 21680A   LD HL,0A68H
09F9 3A67EA   LD A,(EA67H)
09FC F608     OR A,08H
09FE 3267EA   LD (EA67H),A
0A01 D340    OUT (40H),A
0A03 CDD903 CALL 03D9H
0A06 AF      XOR A,A
0A07 D351    OUT (51H),A
0A09 3E80     LD A,80H
0A0B D368    OUT (68H),A
0A0D AF      XOR A,A
0A0E D364    OUT (64H),A
0A10 3EF3     LD A,F3H
0A12 D364    OUT (64H),A
0A14 7E       LD A,(HL)
0A15 23      INC HL
0A16 D365    OUT (65H),A
0A18 7E       LD A,(HL)
0A19 23      INC HL
0A1A D365    OUT (65H),A
0A1C 3ECE     LD A,CEH
0A1E D350    OUT (50H),A
0A20 7E       LD A,(HL)
0A21 23      INC HL
0A22 D350    OUT (50H),A
0A24 7E       LD A,(HL)
0A25 23      INC HL
0A26 D350    OUT (50H),A
0A28 7E       LD A,(HL)
0A29 D350    OUT (50H),A
0A2B 3A61EA   LD A,(EA61H)
0A2E E640    AND A,40H
0A30 F613     OR A,13H
0A32 D350    OUT (50H),A
0A34 3E43     LD A,43H
0A36 D351    OUT (51H),A
0A38 3EC4     LD A,C4H
0A3A D368    OUT (68H),A
0A3C 3E20     LD A,20H
0A3E D351    OUT (51H),A
0A40 FB       EI
0A41 CDF25F CALL 5FF2H
0A44 E6F7    AND A,F7H
0A46 3267EA   LD (EA67H),A
0A49 D340    OUT A,(40H)
0A4B C9      RET
0A4C 2162EA   LD HL,EA62H
0A4F BE       CP A,(HL)
0A50 280C     JR Z,0A5EH
0A52 3E06     LD A,06H
0A54 3D      DEC A
0A55 2807     JR Z,0A5EH
0A57 F5     PUSH AF
0A58 CD2804 CALL 0428H
0A5B F1      POP AF
0A5C 18F6     JR 0A54H
0A5E 216D0A   LD HL,0A6DH
0A61 3E14     LD A,14H
0A63 3262EA   LD (EA62H),A
0A66 1891     JR 09F9H
0A68 B78B9867DE
0A6D 5F899369BE

最初でAレジスタが25の場合を分けており、行数ガラミの処理っぽいことがわかる。また、0A06H~0A3FHのあたりでは、CRTコントローラとDMAコントローラを設定しているのも、だいたい読める。一方、04DDH・0664H・0451H・07C9H・03D9H・5FF2H・0428Hの各ルーチンを呼び出しているので、そっちの「思想」も見に行かねばならない。しかし、それより恐ろしいのは、0A40Hで「EI」すなわち割り込みを許可している点である。

割り込みを許可してしまうと、Z80プログラムは、どこに飛んで行ってしまうかわからない。「IM 1」なら0038Hルーチンだけ見ておけばいいが、「IM 0」は任意の1バイトを実行可能だし、「IM 2」だと256バイトのテーブルから割り込み先を選べる。しかし、この09D7Hルーチンには、「IM 0」なのか「IM 1」なのか「IM 2」なのかすら書かれていない。

それは端的には、N-BASICのプログラム全体を「引用」しておかないと、この09D7Hルーチンの「思想」は「引用」しきれない、ということを意味する。093AHルーチンは09D7Hルーチンを呼び出しているので、やはりN-BASICのプログラム全体を「引用」する必要が生じる。しかしながら、それは「引用」における「公正な慣行に合致」しうるのだろうか。私(安岡孝一)個人としては、少なくともN-BASICに関する限り、それは無理と考えざるを得ない。

原著作物に依拠して新たに作製したものが、創作性ないし独自性を有するか否かは、原著作物の著作権を侵害するか否かの点に、影響を与えるものではないというべきであり、また、著作者がソースプログラムとして公開していない本件著作物につき、その著作者の意思に反して発表する行為が、利用者の便宜の故に正当化される余地がないのは当然の理である

というのが、東京地裁昭和57年(ワ)14001号(1987年1月30日判決)の判示であり、たとえ私が「引用」(あるいは独自実装)を主張したとしても、裁判所は「複製権の侵害」だと判断せざるを得ないからである。ツライなあ…

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?