40年前に作った『WAVE SIMULATOR』(cf.安岡孝一, 杉岡俊男: 横波・縦波の反射と合成, 大阪府高等学校理化教育研究会「物理授業に使えるマイコン・ソフト集」, 第1集 (1986年8月), pp.25-32)のフローチャートとプログラムリストが出てきたので、ざっとスキャンしつつ、wavesimu.cmtに変換してみた。
┌──────────────────────────────┐
│ WAVE SIMULATOR │
│ for PC-8001mk][SR │
│ & │
│ PC-8801series │
│ by Koichi Yasuoka │
└──────────────────────────────┘
C000 : F3 31 FF 7F 3A 02 00 01 : 9F
C008 : 31 FB ED 41 21 48 C0 11 : 5C
C010 : 48 1F 01 E8 07 ED B0 FE : C2
C018 : A0 CA E8 25 FE FE CA 2E : 43
C020 : 26 31 FF FF AF D3 31 21 : 09
C028 : 37 C0 06 11 7E DF 23 10 : 86
C030 : FB DB 09 0F 38 FB C7 42 : 1A
C038 : 41 53 49 43 20 6D 6F 64 : 78
C040 : 65 20 65 72 72 6F 72 07 : B6
C048 : F3 F5 DB 09 E6 10 C2 D2 : 5E
C050 : 1F E5 D5 C5 DB 5C F5 3E : 18
C058 : 1B CD B9 21 3E 44 CD B9 : E2
C060 : 21 3E 1B CD B9 21 3E 54 : D3
C068 : CD B9 21 3E 31 CD B9 21 : E5
C070 : 3E 36 CD B9 21 DD 21 80 : C9
C078 : 80 16 32 3E 1B CD B9 21 : 00
C080 : 3E 53 CD B9 21 3E 30 CD : B3
C088 : B9 21 3E 36 CD B9 21 3E : 7B
C090 : 34 CD B9 21 3E 30 CD B9 : 1F
C098 : 21 0E 50 06 08 D3 5C CD : E1
C0A0 : E2 1F 67 D3 5D CD E2 1F : C6
C0A8 : B4 67 D3 5E CD E2 1F D3 : 55
C0B0 : 5F AC CD B9 21 10 E6 DD : F5
C0B8 : 23 0D 20 DF 01 F0 00 DD : 75
C0C0 : 09 15 20 B7 F1 F6 F8 0E : 62
C0C8 : 5B 0C 0F 30 FC ED 41 C1 : 19
C0D0 : D1 E1 3E 02 D3 E4 F1 FB : 25
C0D8 : ED 4D 00 21 6F 58 22 26 : 02
C0E0 : 27 C9 DD CB 70 07 17 DD : A3
C0E8 : CB 20 03 17 CB 0B 17 DD : 77
C0F0 : CB D0 03 17 CB 0B 17 DD : 2F
C0F8 : CB 80 03 17 CB 0B 17 C9 : D3
C100 : 00 00 00 00 00 00 00 00 : C1
C108 : 00 00 00 00 00 00 00 00 : C9
C110 : 00 00 00 00 00 00 00 00 : D1
C118 : 00 00 00 00 00 00 00 00 : D9
C120 : 00 00 00 00 00 00 00 00 : E1
C128 : 00 00 00 00 00 00 00 00 : E9
C130 : 00 00 00 00 00 00 00 00 : F1
C138 : 00 00 00 00 00 00 00 00 : F9
C140 : 00 00 00 00 00 00 07 0E : 16
C148 : 13 16 18 16 13 0E 07 00 : 88
C150 : 00 00 00 00 00 00 00 00 : 11
C158 : 00 00 00 00 00 00 00 00 : 19
C160 : 00 00 00 00 03 07 0A 0E : 43
C168 : 10 13 15 16 17 18 17 16 : D3
C170 : 15 13 10 0E 0A 07 03 00 : 8B
C178 : 01 03 05 07 09 0A 0C 0E : 76
C180 : 0F 10 12 13 14 15 16 16 : DA
C188 : 17 17 17 18 17 17 17 16 : 01
C190 : 16 15 14 13 12 10 0F 0E : E2
C198 : 0C 0A 09 07 05 03 01 00 : 88
C1A0 : 00 00 00 00 00 00 00 00 : 61
C1A8 : 00 00 00 00 00 00 00 00 : 69
C1B0 : 00 00 00 00 00 00 00 00 : 71
C1B8 : 00 00 00 00 00 00 0E 1C : A3
C1C0 : 26 2D 30 2D 26 1C 0E 00 : 81
C1C8 : 00 00 00 00 00 00 00 00 : 89
C1D0 : 00 00 00 00 00 00 00 00 : 91
C1D8 : 00 00 00 00 07 0E 15 1C : DF
C1E0 : 21 26 2A 2D 2F 30 2F 2D : FA
C1E8 : 2A 26 21 1C 15 0E 07 00 : 60
C1F0 : 03 07 0B 0E 12 15 19 1C : 30
C1F8 : 1F 21 24 26 28 2A 2C 2D : EE
C200 : 2E 2F 2F 30 2F 2F 2E 2D : 37
C208 : 2C 2A 28 26 24 21 1F 1C : EE
C210 : 19 15 12 0E 0B 07 03 00 : 35
C218 : 00 00 00 00 00 00 00 00 : DA
C220 : 00 00 00 00 00 00 00 00 : E2
C228 : 00 00 00 00 00 00 00 00 : EA
C230 : 00 00 00 00 00 00 1D 38 : 47
C238 : 4D 5B 60 5B 4D 38 1D 00 : FF
C240 : 00 00 00 00 00 00 00 00 : 02
C248 : 00 00 00 00 00 00 00 00 : 0A
C250 : 00 00 00 00 0F 1D 2B 38 : A1
C258 : 43 4D 55 5B 5E 60 5E 5B : D1
C260 : 55 4D 43 38 2B 1D 0F 00 : 96
C268 : 07 0F 16 1D 24 2B 32 38 : 2C
C270 : 3E 43 48 4D 51 55 58 5B : A1
C278 : 5D 5E 5F 60 5F 5E 5D 5B : 29
C280 : 58 55 51 4D 48 43 3E 38 : 8E
C288 : 32 2B 24 1D 16 0F 07 00 : 14
C290 : 00 00 00 78 FC 3C 7E 1E : 9E
C298 : 3F 0F 1F 07 0F 03 07 01 : E8
C2A0 : 03 00 01 00 80 80 C0 C0 : E6
C2A8 : E0 E0 F0 F0 F8 00 00 00 : 02
C2B0 : C0 60 30 18 0C 06 03 01 : F0
C2B8 : 80 6F DB 40 0F 38 FB 7D : 43
C2C0 : D3 10 AF D3 40 3C D3 40 : 76
C2C8 : C9 00 21 00 4F 11 01 4F : 24
C2D0 : 01 9E 01 75 ED B0 36 20 : 9A
C2D8 : 3E AA 12 0E 5E ED 41 79 : A7
C2E0 : 21 00 80 11 01 80 01 FF : D5
C2E8 : 3F 75 ED B0 3D 4F FE 5B : E0
C2F0 : 20 EB D3 5F DB 09 07 30 : 0A
C2F8 : FB C3 5D 26 00 7C 26 02 : 9F
C300 : 16 00 5D 29 29 19 29 29 : F3
C308 : 29 29 5F 19 C9 00 00 00 : 5E
C310 : 3A 00 50 B7 C0 DB 00 EE : 9D
C318 : FF 28 10 21 26 20 11 28 : B2
C320 : 00 06 07 0F 38 12 19 10 : 72
C328 : FA 18 0D DB 01 21 66 21 : 8E
C330 : 0F 30 05 0F D8 21 8E 21 : EE
C338 : DB 08 07 17 30 0F 0F 38 : 82
C340 : 15 11 FF 4F 7E ED 44 C8 : EE
C348 : 12 2B 1B 18 F7 EB 21 9F : 1D
C350 : 50 CB 06 EB 30 EB 11 FF : 4A
C358 : 4F 01 27 00 ED B8 C9 CD : CD
C360 : 3C 26 21 9E 50 DB 08 AE : 25
C368 : E6 20 C8 AE 77 FE 20 9F : DB
C370 : 21 4E 80 11 50 00 06 C8 : 51
C378 : D3 5E 77 19 10 FC D3 5F : 3A
C380 : C9 00 00 00 08 1A 86 E8 : 9C
C388 : 2F C6 67 FE CD D0 D9 6F : 8A
C390 : 61 CD FD 21 08 11 B0 FF : 67
C398 : 47 E6 3C CB 74 D3 5C 20 : 52
C3A0 : 01 77 78 19 06 04 CB 74 : B5
C3A8 : 20 0B 77 19 10 F8 CB 74 : 6D
C3B0 : 20 03 E6 3C 77 D3 5F D9 : 3A
C3B8 : C9 00 00 00 08 7E CD C3 : 5A
C3C0 : 22 08 1A 2F C6 65 D9 6F : 69
C3C8 : 61 CD FD 21 08 11 B0 FF : 9F
C3D0 : D3 5D 77 19 77 D3 5F D9 : D5
C3D8 : C9 00 00 00 CD CA 21 0E : 2A
C3E0 : 4E D9 21 4E 4F 11 4F 4F : 37
C3E8 : 7D D6 25 E6 FD 3E 5C CC : 6C
C3F0 : 77 26 32 9E 22 AF CD 84 : 42
C3F8 : 22 AF CD BC 22 24 14 3E : AD
C400 : 18 CD BC 22 3E 7E CD 84 : 94
C408 : 22 25 2D 15 1C D9 0D D9 : 30
C410 : F2 E8 22 CD 10 22 21 00 : F0
C418 : 50 11 00 4F 01 9E 00 ED : 18
C420 : B0 21 9C 50 11 9D 50 01 : A0
C428 : C5 00 ED B8 11 4E 50 CD : D2
C430 : 64 26 CD 44 23 CD 5F 22 : 00
C438 : DB 09 07 D2 65 25 E6 02 : 2B
C440 : 28 F3 18 9B 11 00 10 7A : 6D
C448 : B3 1B 20 FB C9 00 1A 86 : 5E
C450 : D9 E2 57 23 1F 18 02 CB : 4D
C458 : 2F CB 2F CB 2F 3C 47 CB : 8D
C460 : 2F CB 2F CB 2F 81 81 C6 : 0F
C468 : 4C 6F 26 9E 78 E6 07 87 : 97
C470 : C6 93 5F 16 21 FE 99 38 : F2
C478 : 0B E5 CD 84 23 D9 E1 23 : 7D
C480 : 7B C6 0A 5F 7D D6 50 FE : 8F
C488 : 50 30 22 C5 01 50 00 1A : 1E
C490 : 13 D3 5C AE 77 09 1A AE : 8C
C498 : 77 09 1A AE 77 09 1A AE : EC
C4A0 : 77 09 1A AE 77 09 1B 1A : 61
C4A8 : AE 77 D3 5F C1 D9 C9 7E : A4
C4B0 : D9 26 92 CD BA 23 1A D9 : A2
C4B8 : 26 AB CB 2F CB 2F CB 2F : 3B
C4C0 : C6 03 47 CB 2F CB 2F CB : 53
C4C8 : 2F 81 81 C6 6C 6F 78 E6 : BC
C4D0 : 07 C6 B0 5F 16 21 FE B7 : 5C
C4D8 : 20 08 E5 CD E2 23 D9 E1 : 35
C4E0 : 23 13 7D D6 70 FE 50 30 : 1B
C4E8 : 10 C5 01 50 00 1A D3 5D : 1C
C4F0 : AE 77 09 1A AE 77 D3 5F : 53
C4F8 : C1 D9 C9 00 00 00 D9 79 : 71
C500 : D3 5E AE 77 1A A9 12 D3 : C3
C508 : 5F D9 C9 00 00 00 D9 CB : 72
C510 : 01 D9 D0 D9 2B 1B D9 C9 : 40
C518 : 00 00 00 D9 CB 09 D9 D0 : 33
C520 : D9 23 13 D9 C9 00 00 00 : 96
C528 : 21 28 4F 11 29 4F D9 21 : 08
C530 : 4E 94 11 7E AA E5 D5 0E : D8
C538 : 08 D9 CD FE 23 06 1B CD : BA
C540 : 5D 24 CD FE 23 10 F8 D5 : 51
C548 : CD 6F 24 D1 2B 13 D9 D1 : 26
C550 : E1 2B 2B 1B 1B CB 44 28 : B9
C558 : DC C9 00 00 00 D9 79 01 : 15
C560 : 50 00 09 EB 01 B0 FF 09 : 22
C568 : EB 4F D9 C9 00 00 00 1A : 23
C570 : 86 4F 11 00 00 EA 8B 24 : B4
C578 : FA 83 24 FE 40 D2 E7 24 : F9
C580 : C3 94 24 FE C0 D2 AE 24 : 22
C588 : C3 24 25 FA E7 24 C3 24 : 45
C590 : 25 00 00 00 06 20 7B 81 : 9C
C598 : 5F DC 1B 24 7A C6 40 57 : AE
C5A0 : 30 06 CD 5D 24 CD FE 23 : D7
C5A8 : 10 EC C9 00 00 00 FE D9 : 09
C5B0 : 30 04 7D 3D 28 17 06 20 : C8
C5B8 : 7B 91 5F D4 0E 24 7A C6 : 2E
C5C0 : 40 57 30 06 CD 5D 24 CD : 6D
C5C8 : FE 23 10 EC C9 7B 91 5F : DE
C5D0 : 38 04 CD 0E 24 D8 7A C6 : E8
C5D8 : 40 57 30 F1 CD 5D 24 CD : 70
C5E0 : FE 23 18 E9 00 00 00 FE : C5
C5E8 : 60 38 05 7D FE 28 28 17 : 2C
C5F0 : 06 20 7A C6 40 57 DC 5D : EB
C5F8 : 24 7B 81 5F 30 06 CD 1B : 5A
C600 : 24 CD FE 23 10 EC C9 06 : A3
C608 : 02 7A C6 40 57 DC 5D 24 : 04
C610 : 7B 81 5F 30 F4 CD 1B 24 : 61
C618 : 30 02 05 C8 CD FE 23 18 : E3
C620 : E8 00 00 00 FE 59 7D 3D : DF
C628 : 28 1E 30 05 06 03 3D 28 : D7
C630 : 19 06 20 7A C6 40 57 DC : E8
C638 : 5D 24 7B 81 5F 38 06 CD : E5
C640 : 0E 24 CD FE 23 10 EC C9 : EB
C648 : 06 01 7A C6 40 57 DC 5D : 25
C650 : 24 7B 81 5F 38 F4 CD 0E : 9C
C658 : 24 30 02 05 C8 CD FE 23 : 2F
C660 : 18 E8 00 00 00 CD CA 21 : DE
C668 : 0E 29 D9 21 28 50 11 29 : 11
C670 : 50 CD 4E 23 CD AF 23 2B : 8E
C678 : 13 D9 0D 79 D9 3D 20 F1 : D7
C680 : 0E 29 D9 21 28 4F 11 29 : 28
C688 : 4F CD 4E 23 CD AF 23 24 : 9E
C690 : 14 CD 4E 23 CD AF 23 25 : 6C
C698 : 2D 15 1C D9 0D D9 20 E9 : 84
C6A0 : CD 10 22 21 00 50 11 00 : E7
C6A8 : 4F 01 52 00 ED B0 21 50 : 1E
C6B0 : 50 11 51 50 01 79 00 ED : DF
C6B8 : B8 11 28 50 CD 64 26 CD : E3
C6C0 : 44 23 CD 44 23 CD 5F 22 : 6F
C6C8 : DB 09 07 D2 DC 22 07 30 : 80
C6D0 : 06 E6 04 28 F0 18 A9 CD : 2C
C6D8 : 28 24 DB 09 07 D2 DC 22 : A5
C6E0 : 07 30 F7 CD 28 24 18 E0 : E5
C6E8 : DB 40 E6 02 CC DB 1F AF : 26
C6F0 : D3 32 3E 0A 32 4B 1F 3E : DD
C6F8 : C0 32 78 1F 32 E2 21 32 : AE
C700 : E5 21 32 72 22 3E 03 32 : 06
C708 : FF 21 3E 28 32 9F 22 32 : 7A
C710 : A8 22 32 B0 22 3E DE 32 : F3
C718 : 6B 23 3E D2 32 B2 23 3E : C2
C720 : EB 32 B9 23 3E D4 32 31 : 55
C728 : 24 3E EA 32 34 24 CD 95 : 27
C730 : 26 01 51 0B ED A3 CA DC : B0
C738 : 22 0C 18 F8 DB 01 07 30 : 50
C740 : 1C E6 18 E8 2A 45 23 FE : 99
C748 : 08 28 09 01 C0 FF 09 D0 : E1
C750 : 22 45 23 C9 01 40 00 09 : B4
C758 : D8 22 45 23 C9 21 00 10 : 7B
C760 : 22 45 23 C9 DB 08 E6 10 : 53
C768 : 28 0A 1A 21 9E 50 CB 6E : C3
C770 : 20 02 ED 44 13 12 C9 DB : 53
C778 : 09 07 07 E6 01 C6 5C 32 : 91
C780 : 9E 22 AF CD 84 22 3A 9E : 01
C788 : 22 EE 01 C9 00 02 20 04 : 4F
C790 : 40 02 02 03 10 21 30 C8 : C7
C798 : 11 00 F4 01 D0 07 ED B0 : D9
C7A0 : AF D3 51 21 24 27 01 50 : F7
C7A8 : 05 ED B3 01 64 02 ED B3 : 1B
C7B0 : 01 65 02 ED B3 01 51 03 : D4
C7B8 : ED B3 3E E4 D3 68 3E 07 : C1
C7C0 : D3 30 21 8D 26 4E ED 78 : 11
C7C8 : EE FF 20 13 DB 00 2F E6 : 9F
C7D0 : 07 28 F3 0F 38 20 21 05 : 46
C7D8 : 27 0F D8 21 18 27 C9 23 : F9
C7E0 : BE 20 DF 23 7D FE 95 20 : B7
C7E8 : DC ED 5E 3E 27 ED 47 3E : AD
C7F0 : 02 D3 E6 D3 E4 FB 3E 5D : BF
C7F8 : 32 01 24 21 10 27 C9 00 : 37
C800 : 00 00 48 1F 00 00 00 00 : 2F
C808 : 00 04 02 04 01 04 02 04 : E5
C810 : 00 00 00 00 07 07 07 07 : F4
C818 : 00 00 00 00 07 03 07 04 : F5
C820 : 07 03 07 00 CE 98 67 DE : A4
C828 : 20 00 F4 CF 87 43 80 20 : 3D
C830 : 57 41 56 45 20 53 49 4D : 34
C838 : 55 4C 41 54 4F 52 20 20 : 17
C840 : 20 20 20 20 20 20 20 20 : 08
C848 : 20 20 20 20 20 20 20 20 : 10
C850 : 20 20 20 20 20 20 20 20 : 18
C858 : 20 20 20 20 20 20 20 20 : 20
C860 : 20 20 20 20 20 20 20 20 : 28
C868 : 20 20 20 20 20 20 20 20 : 30
C870 : 20 20 20 20 20 20 20 20 : 38
C878 : 20 20 20 20 20 20 20 20 : 40
C880 : 43 6F 70 79 72 69 67 68 : 8D
C888 : 74 20 4D 43 4D 4C 58 58 : BD
C890 : 58 56 20 28 43 29 20 62 : 3C
C898 : 79 20 4B 2E 59 61 73 75 : 14
C8A0 : 6F 6B 61 20 20 20 20 20 : 43
C8A8 : 20 20 20 20 20 20 20 20 : 70
C8B0 : 20 20 20 20 20 20 20 20 : 78
C8B8 : 20 20 20 20 20 20 20 20 : 80
C8C0 : 20 20 20 20 20 20 20 20 : 88
C8C8 : 20 20 20 20 20 20 20 20 : 90
C8D0 : 20 20 20 20 20 20 20 20 : 98
C8D8 : 20 20 20 20 20 20 20 20 : A0
C8E0 : 20 20 20 20 20 20 20 20 : A8
C8E8 : 20 20 20 20 20 20 20 20 : B0
C8F0 : 20 20 20 20 20 20 20 20 : B8
C8F8 : 20 20 20 20 20 20 20 20 : C0
C900 : 20 20 20 20 20 20 20 20 : C9
C908 : 20 20 20 20 20 20 20 20 : D1
C910 : 20 20 20 20 20 20 20 20 : D9
C918 : 20 20 20 20 20 20 20 20 : E1
C920 : 20 20 98 95 95 95 95 95 : AA
C928 : 95 95 95 95 95 95 95 95 : 99
C930 : 95 95 95 95 95 95 95 95 : A1
C938 : 95 95 95 95 95 95 95 95 : A9
C940 : 95 95 95 95 95 95 99 20 : 40
C948 : 98 95 95 95 95 95 95 95 : BC
C950 : 95 95 95 95 95 95 95 95 : C1
C958 : 95 95 95 95 95 95 95 95 : C9
C960 : 95 95 95 95 95 95 95 95 : D1
C968 : 95 95 95 95 95 99 20 20 : F3
C970 : 20 20 96 20 68 98 95 99 : 5D
C978 : 98 95 99 98 95 99 20 20 : 0D
C980 : 20 20 20 20 20 20 20 20 : 49
C988 : 20 20 20 20 20 20 20 20 : 51
C990 : 20 20 20 20 20 20 96 20 : CF
C998 : 96 20 98 95 95 95 95 99 : 9C
C9A0 : 20 20 20 20 20 20 20 20 : 69
C9A8 : 20 20 20 20 98 95 99 20 : D7
C9B0 : 20 20 20 20 20 20 20 20 : 79
C9B8 : 20 20 20 20 20 96 20 20 : F7
C9C0 : 20 20 96 20 69 96 37 96 : 4B
C9C8 : 96 38 96 96 39 96 20 20 : 9A
C9D0 : 20 20 20 20 20 20 20 20 : 99
C9D8 : 20 20 20 20 20 20 20 20 : A1
C9E0 : 20 20 20 20 20 20 96 20 : 1F
C9E8 : 96 20 96 53 54 4F 50 96 : D9
C9F0 : 20 53 74 6F 70 20 20 20 : DF
C9F8 : 20 20 20 20 96 2A 96 20 : B7
CA00 : 41 63 63 65 6C 65 72 61 : DA
CA08 : 74 65 20 20 20 96 20 20 : E1
CA10 : 20 20 96 20 67 9A 95 9B : 01
CA18 : 9A 95 9B 9A 95 9B 20 20 : B6
CA20 : 98 95 95 95 95 99 20 20 : AF
CA28 : 20 20 20 20 20 20 20 20 : F2
CA30 : 20 20 20 20 20 20 96 20 : 70
CA38 : 96 20 9A 95 95 95 95 9B : 41
CA40 : 20 20 20 20 20 20 20 20 : 0A
CA48 : 20 20 20 20 9A 95 9B 20 : 7C
CA50 : 20 20 20 20 20 20 20 20 : 1A
CA58 : 20 20 20 20 20 96 20 20 : 98
CA60 : 20 20 96 20 68 98 95 99 : 4E
CA68 : 98 95 99 98 95 99 20 20 : FE
CA70 : 96 43 54 52 4C 96 20 20 : DB
CA78 : 52 65 76 65 72 73 65 20 : 3E
CA80 : 70 75 6C 73 65 20 96 20 : 49
CA88 : 96 20 98 95 95 95 95 99 : 8D
CA90 : 20 20 20 20 20 20 20 20 : 5A
CA98 : 20 20 20 20 98 95 99 20 : C8
CAA0 : 20 20 20 20 20 20 20 20 : 6A
CAA8 : 20 20 20 20 20 96 20 20 : E8
CAB0 : 20 20 96 20 1E 96 34 96 : EE
CAB8 : 96 35 96 96 36 96 20 20 : 85
CAC0 : 9A 95 95 95 95 9B 20 20 : 53
CAC8 : 20 20 20 20 20 20 20 20 : 92
CAD0 : 20 20 20 20 20 20 96 20 : 10
CAD8 : 96 20 96 3C 95 95 9B 96 : 85
CAE0 : 20 52 65 73 74 6F 72 65 : AE
CAE8 : 20 20 20 20 96 2B 96 20 : A9
CAF0 : 42 72 61 6B 65 20 20 20 : FF
CAF8 : 20 20 20 20 20 96 20 20 : 38
CB00 : 20 20 96 20 21 9A 95 9B : AC
CB08 : 9A 95 9B 9A 95 9B 20 20 : A7
CB10 : 98 95 95 95 95 95 99 20 : 15
CB18 : 20 20 20 20 20 20 20 20 : E3
CB20 : 20 20 20 20 20 20 96 20 : 61
CB28 : 96 20 9A 95 95 95 95 9B : 32
CB30 : 20 20 20 20 20 20 20 20 : FB
CB38 : 20 20 20 20 9A 95 9B 20 : 6D
CB40 : 20 20 20 20 20 20 20 20 : 0B
CB48 : 20 20 20 20 20 96 20 20 : 89
CB50 : 20 20 96 20 21 98 95 99 : F8
CB58 : 98 95 99 98 95 99 20 20 : EF
CB60 : 96 53 48 49 46 54 96 20 : F5
CB68 : 46 75 6C 6C 20 77 61 76 : 34
CB70 : 65 20 20 20 20 20 96 20 : F6
CB78 : 9A 95 95 95 95 95 95 95 : F0
CB80 : 95 95 95 95 95 95 95 95 : F3
CB88 : 95 53 50 45 45 44 95 95 : 83
CB90 : 95 95 95 95 95 95 95 95 : 03
CB98 : 95 95 95 95 95 9B 20 20 : 27
CBA0 : 20 20 96 20 21 96 31 96 : DF
CBA8 : 96 32 96 96 33 96 20 20 : 70
CBB0 : 9A 95 95 95 95 95 9B 20 : B9
CBB8 : 20 20 20 20 20 20 20 20 : 83
CBC0 : 20 20 20 20 20 20 96 20 : 01
CBC8 : 98 95 95 95 95 95 95 95 : 3E
CBD0 : 95 95 95 95 95 95 95 95 : 43
CBD8 : 95 95 95 95 95 95 95 95 : 4B
CBE0 : 95 95 95 95 95 95 95 95 : 53
CBE8 : 95 95 95 95 95 99 20 20 : 75
CBF0 : 20 20 96 20 21 9A 95 9B : 9C
CBF8 : 9A 95 9B 9A 95 9B 20 20 : 97
CC00 : 20 20 20 20 20 20 20 20 : CC
CC08 : 20 20 20 20 20 20 20 20 : D4
CC10 : 20 20 20 20 20 20 96 20 : 52
CC18 : 96 20 98 95 95 95 99 20 : AA
CC20 : 20 20 20 20 20 20 20 20 : EC
CC28 : 20 20 20 20 20 20 20 20 : F4
CC30 : 20 20 20 20 20 20 20 20 : FC
CC38 : 20 20 20 20 20 96 20 20 : 7A
CC40 : 20 20 96 20 20 2D 2D 2D : A9
CC48 : 2D 1C 6C 6F 6E 67 20 20 : 4D
CC50 : 20 20 20 20 20 20 20 20 : 1C
CC58 : 20 20 20 20 20 20 20 20 : 24
CC60 : 20 20 20 20 20 20 96 20 : A2
CC68 : 96 20 96 45 53 43 96 20 : 11
CC70 : 20 20 43 68 61 6E 67 65 : C2
CC78 : 20 6D 6F 64 65 20 20 20 : 69
CC80 : 20 20 20 20 20 20 20 20 : 4C
CC88 : 20 20 20 20 20 96 20 20 : CA
CC90 : 20 20 9A 95 95 95 95 95 : 1F
CC98 : 95 95 95 95 95 95 95 95 : 0C
CCA0 : 4F 53 43 49 4C 41 54 45 : C0
CCA8 : 95 95 95 95 95 95 95 95 : 1C
CCB0 : 95 95 95 95 95 95 9B 20 : B5
CCB8 : 96 20 9A 95 95 95 9B 20 : 4E
CCC0 : 20 20 20 20 20 20 20 20 : 8C
CCC8 : 20 20 20 20 20 20 20 20 : 94
CCD0 : 20 20 20 20 20 20 20 20 : 9C
CCD8 : 20 20 20 20 20 96 20 20 : 1A
CCE0 : 20 20 98 95 95 95 95 95 : 6D
CCE8 : 95 95 95 95 95 95 95 95 : 5C
CCF0 : 95 95 95 95 95 95 95 95 : 64
CCF8 : 95 95 95 95 95 95 95 95 : 6C
CD00 : 95 95 95 95 95 95 99 20 : 04
CD08 : 96 20 80 80 80 80 80 80 : 8B
CD10 : 80 9C 4D 61 72 6B 65 72 : 5B
CD18 : 20 20 20 28 54 72 61 6E : 02
CD20 : 73 76 65 72 73 65 20 6D : 12
CD28 : 6F 64 65 29 20 96 20 20 : 4C
CD30 : 20 20 96 20 98 95 95 99 : 4E
CD38 : 20 20 20 20 20 20 20 20 : 05
CD40 : 20 20 20 20 20 20 20 20 : 0D
CD48 : 20 20 20 20 20 20 20 20 : 15
CD50 : 20 20 20 20 20 20 96 20 : 93
CD58 : 96 20 88 73 70 61 63 65 : 6F
CD60 : 97 92 4F 73 63 69 6C 61 : B1
CD68 : 74 6F 72 20 64 69 73 70 : 5A
CD70 : 6C 61 63 65 6D 65 6E 74 : 86
CD78 : 20 20 20 20 20 96 20 20 : BB
CD80 : 20 20 96 20 96 B6 C5 96 : EA
CD88 : 20 20 20 46 69 78 65 64 : A5
CD90 : 20 20 20 20 20 20 20 20 : 5D
CD98 : 20 20 20 20 20 20 20 20 : 65
CDA0 : 20 20 20 20 20 20 96 20 : E3
CDA8 : 96 20 94 94 94 94 94 94 : A3
CDB0 : 94 9E 20 20 20 20 20 20 : 6F
CDB8 : 20 28 4C 6F 6E 67 69 74 : 3A
CDC0 : 75 64 69 6E 61 6C 20 6D : 97
CDC8 : 6F 64 65 29 20 96 20 20 : EC
CDD0 : 20 20 96 20 9A 95 95 9B : F2
CDD8 : 20 20 20 20 20 20 20 20 : A5
CDE0 : 20 20 20 20 20 20 20 20 : AD
CDE8 : 20 20 20 20 20 20 20 20 : B5
CDF0 : 20 20 20 20 20 20 96 20 : 33
CDF8 : 9A 95 95 95 95 95 95 95 : 72
CE00 : 95 95 95 53 50 45 43 49 : 01
CE08 : 41 4C 20 46 55 4E 43 54 : 03
CE10 : 49 4F 4E 95 95 95 95 95 : AD
CE18 : 95 95 95 95 95 9B 20 20 : AA
CE20 : 20 20 96 20 98 95 95 95 : 3B
CE28 : 95 99 20 20 20 20 20 20 : E4
CE30 : 20 20 20 20 20 20 20 20 : FE
CE38 : 20 20 20 20 20 20 20 20 : 06
CE40 : 20 20 20 20 20 20 96 20 : 84
CE48 : 20 20 20 20 20 20 20 20 : 16
CE50 : 20 20 20 20 20 20 20 20 : 1E
CE58 : 20 20 20 20 20 20 20 20 : 26
CE60 : 20 20 20 20 20 20 20 20 : 2E
CE68 : 20 20 20 20 20 20 20 20 : 36
CE70 : 20 20 96 20 96 47 52 50 : B3
CE78 : 48 96 20 4E 6F 6E 2D 72 : 0E
CE80 : 65 66 6C 65 63 74 69 6F : 99
CE88 : 6E 20 20 20 20 20 20 20 : A4
CE90 : 20 20 20 20 20 20 96 20 : D4
CE98 : 20 20 20 20 20 20 30 3A : 90
CEA0 : 20 4D 6F 6E 6F 63 68 72 : 64
CEA8 : 6F 6D 65 20 20 20 20 20 : 57
CEB0 : 20 20 20 20 20 20 20 20 : 7E
CEB8 : 20 20 20 20 20 20 20 20 : 86
CEC0 : 20 20 96 20 9A 95 95 95 : DD
CEC8 : 95 9B 20 20 20 20 20 20 : 86
CED0 : 20 20 20 20 20 20 20 20 : 9E
CED8 : 20 20 20 20 20 20 20 20 : A6
CEE0 : 20 20 20 20 20 20 96 20 : 24
CEE8 : 20 20 20 20 20 20 31 3A : E1
CEF0 : 20 43 6F 6C 6F 72 20 28 : 25
CEF8 : 67 72 65 65 6E 2C 72 65 : DA
CF00 : 64 2C 62 6C 75 65 29 20 : 50
CF08 : 20 20 20 20 20 20 20 20 : D7
CF10 : 20 20 9A 95 95 95 95 95 : A2
CF18 : 95 95 95 95 95 95 45 44 : EE
CF20 : 47 45 20 43 4F 4E 44 49 : 08
CF28 : 54 49 4F 4E 95 95 95 95 : 85
CF30 : 95 95 95 95 95 95 9B 20 : 38
CF38 : 20 20 20 20 20 20 32 3A : 33
CF40 : 20 43 6F 6C 6F 72 20 28 : 76
CF48 : 77 68 69 74 65 2C 6D 61 : 32
CF50 : 67 65 6E 74 61 2C 67 72 : 33
CF58 : 65 65 6E 29 20 20 20 20 : 08
CF60 : 20 20 20 20 20 20 20 20 : 2F
CF68 : 20 20 20 20 20 20 20 20 : 37
CF70 : 20 20 20 20 20 20 20 20 : 3F
CF78 : 20 20 20 20 20 20 20 20 : 47
CF80 : 20 20 20 20 20 20 20 20 : 4F
CF88 : 20 20 20 20 20 20 20 20 : 57
CF90 : 20 20 20 20 20 20 20 20 : 5F
CF98 : 20 20 20 20 20 20 20 20 : 67
CFA0 : 20 20 20 20 20 20 20 20 : 6F
CFA8 : 20 20 20 20 20 20 20 20 : 77
CFB0 : 20 20 20 20 20 20 20 20 : 7F
CFB8 : 20 20 20 20 20 20 20 20 : 87
CFC0 : 20 20 20 20 20 20 20 20 : 8F
CFC8 : 20 20 20 20 20 20 20 20 : 97
CFD0 : 20 20 20 20 20 20 20 20 : 9F
CFD8 : 20 20 20 20 20 20 20 20 : A7
CFE0 : 20 20 20 20 20 20 20 20 : AF
CFE8 : 20 20 20 20 20 20 20 20 : B7
CFF0 : 20 20 20 20 20 20 20 20 : BF
CFF8 : 20 20 20 20 20 20 20 20 : C7
*** CHECKSUM PROGRAM ***
10 FOR A=&HC000 TO &HCFFF STEP 8
20 A$=HEX$(A)
30 C=VAL("&H"+LEFT$(A$,2))+VAL("&H"+RIGHT$(A$,2))
40 LPRINT A$;"-";HEX$(A+7);" ";
50 FOR B=A TO A+7
60 C=C+PEEK(B)
70 NEXT
80 LPRINT RIGHT$(HEX$(C),2)
90 NEXT
プログラムの起動はmon
コマンドでGC000だが、多少トリッキーな動作となっている。この部分をZ80っぽく見てみよう。
C000 F3 DI
C001 31FF7F LD SP,7FFFH
C004 3A0200 LD A,(0002H)
C007 0131FB LD BC,FB31H
C00A ED41 OUT (C),B
C00C 2148C0 LD HL,C048H
C00F 11481F LD DE,1F48H
C012 01E807 LD BC,07E8H
C015 EDBO LDIR
C017 FEA0 CP A0H # N-88 BASIC
C019 CAE825 JP Z,25E8H
C01C FEFE CP FEH # N80SR-BASIC
C01E CA2E26 JP Z,262EH
C021 31FFFF LD SP,FFFFH
C024 AF XOR A
C025 D331 OUT (31H),A
C027 2137C0 LD HL,C037H
C02A 0611 LD B,17
C02C 7E LD A,(HL)
C02D DF RST 0018H
C02E 23 INC HL
C02F 10FB DJNZ C02CH
C031 DB09 IN A,(09H)
C033 0F RRCA
C034 38FB JR C,C031H
C036 C7 RST 0000H
C037 4241534943206D6F6465206572726F7207
# B A S I C m o d e e r r o r [BEEP]
0000H~7FFFHのメモリバンクをROMからRAMに切り替えて、C048H~C82FHのプログラムを1F48H~272FHにコピーしたあと、PC-8801ならば25E8Hに、PC-8001mkⅡSRならば262EHにジャンプする。どちらでも無かった場合(あるいはN-BASICで起動してしまった場合)は、0000H~7FFFHのメモリバンクをROMに戻して、「BASIC mode error」と表示する。コピー後の25E8Hや262EHも見てみよう。
25E8 DB40 IN A,(40H)
25EA E602 AND 02H
25EC CCDB1F CALL Z,1FDBH
25EF AF XOR A
25F0 D332 OUT (32H),A
25F2 3E0A LD A,0AH
25F5 324B1F LD (1F4BH),A
25F7 3EC0 LD A,C0H
25F9 32781F LD (1F78H),A
25FC 32E221 LD (21E2H),A
25FF 32E521 LD (21E5H),A
2602 327222 LD (2272H),A
2605 3E03 LD A,03H
2607 32FF21 LD (21FFH),A
260A 3E28 LD A,28H
260C 329F22 LD (229FH),A
260F 32A822 LD (22A8H),A
2612 32B022 LD (22B0H),A
2615 3EDE LD A,DEH
2617 326B23 LD (236BH),A
261A 3ED2 LD A,D2H
261C 32B223 LD (23B2H),A
261F 3EEB LD A,EBH
2621 32B923 LD (23B9H),A
2624 3ED4 LD A,D4H
2626 323124 LD (2431H),A
2629 3EEA LD A,EAH
262B 323424 LD (2434H),A
262E CD9526 CALL 2695H
2631 01510B LD BC,0B51H
2634 EDA3 OUTI
2636 CADC22 JP Z,22DCH
2639 0C INC C
263A 18F8 JR 2634H
268D 0220 # E
268F 0440 # V
2691 0202 # A
2693 0310 # L
2695 2130C8 LD HL,C830H
2698 1100F4 LD DE,F400H
269B 01D007 LD BC,07D0H
269D EDB0 LDIR
26A0 AF XOR A
26A1 D351 OUT (51H),A
26A3 212427 LD HL,2724H
26A6 015005 LD BC,0550H
26A9 EDB3 OTIR
26AB 016402 LD BC,0264H
26AE EDB3 OTIR
26B0 016502 LD BC,0265H
26B3 EDB3 OTIR
26B5 015103 LD BC,0351H
26B8 EDB3 OTIR
26BA 3EE4 LD A,E4H
26BC D368 OUT (68H),A
26BE 3E07 LD A,07H
26C0 D330 OUT (30H),A
26C2 218D26 LD HL,268DH
26C5 4E LD C,(HL)
26C6 ED78 IN A,(C)
26C8 EEFF XOR FFH
26CA 2013 JR NZ,26DFH
26CC DB00 IN A,(00H)
26CE 2F CPL
26CF E607 AND 07H
26D1 28F3 JR Z,26C6H
26D3 0F RRCA
26D4 3820 JR C,26F6H
26D6 210527 LD HL,2705H
26D9 0F RRCA
26DA D8 RET C
26DB 211827 LD HL,2718H
26DE C9 RET
26DF 23 INC HL
26E0 BE CP (HL)
26E1 20DF JR NZ,26C2H
26E3 23 INC HL
26E4 7D LD A,L
26E5 FE95 CP 95H
26E7 20DC JR NZ,26C5H
26E9 ED5E IM 2
26EB 3E27 LD A,27H
26ED ED47 LD I,A
26EF 3E02 LD A,02H
26F1 D3E6 OUT (E6H),A
26F3 D3E4 OUT (E4H),A
26F5 FB EI
26F6 3E5D LD A,5DH
26F8 320124 LD (2401H),A
26FB 211027 LD HL,2710H
26FE C9 RET
2702 481F # IM 2 entry 1F48H
2705 0000000004020401040204 # 1: Color(green,red,blue)
2710 0000000007070707 # 0: Monochrome
2718 0000000007030704070307 # 2: Color(white,magenta,green)
2724 CE9867DE20 # OUT (50H)
2729 00F4 # OUT (64H)
272B CF87 # OUT (65H)
272D 438020 # OUT (51H)
1FDB 216F58 LD HL,586FH
1FDE 222627 LD (2726H),HL
1FE1 C9 RET
このプログラムは、PC-8001mkⅡSRの640×200ドットモードで開発したものなので、PC-8801で動かす場合には、あちこちパッチを当てまくっている。特に、GVRAMのメモリバンクが、PC-8001mkⅡSRでは8000H~BFFFHなのに対し、PC-8801ではC000H~FFFFHなので、プログラム全体を0000H~7FFFHに配置する必要があったのだ。その一方、メニュー画面はPC-8001・PC-8801の基本設計を無視して、F400Hから80×25バイトつまりF400H~FBCFHに再配置しており、アトリビュートエリアが無い。
なお、メニュー画面において、テンキー0・1・2の代わりにevalと打ち込むと、STOPキーで画面のハードコピーがプリントアウトできるようになる。ただし、ドットマトリクスプリンタが想定されている上に、Z80の未定義命令「DD CB xx 07」と「DD CB xx 03」を使っているので注意されたい。