復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第179回]
●Z80逆アセンブラ改良版についてのお知らせ
前回書きましたように、ND80ZVに附属しておりますZ80逆アセンブラ(ZDAS.COM)は、4KB程度しか逆アセンブルできませんでしたので、それを改良して20KBを超えるような大きなマシン語プログラムファイル(バイナリファイル)でも逆アセンブルできるようにしました。
過去にND80ZV組立キットをご購入いただいた方には、ご希望でしたら、改良版のZ80逆アセンブラ(ZDAS.COM)をお送りしますので、メールにてお申し込みください(もちろん無償です)。
折り返しメール添付にてお送りします。
なお今年(2012年)7月出荷分からは改良版のZDAS.COMになっています。
●F80(FORTRAN80)の逆アセンブルリストの一部です
前回はMBASICとFORTRAN80を逆アセンブルして、そのリストをプリントアウトしたものを写真に撮ってお見せしました。
でも写真ではどんなふうに逆アセンブルされているのかというところまではわかりませんから、そのリストのごく一部ですけれど、参考までにお見せすることにいたします。
下はF80(FORTRAN80)の逆アセンブルリストの一部(アドレス3000H〜3101H)です。
F80.COMは実行時には0100H〜70FFHにロードされます。
28KBもあります。
3000 09 ADD HL,BC 3001 73 LD (HL),E 3002 23 INC HL 3003 72 LD (HL),D 3004 C9 RET 3005 C22130 JP NZ,$3021 3008 2AC601 LD HL,($01C6) 300B E5 PUSH HL 300C 2ACC01 LD HL,($01CC) 300F E5 PUSH HL 3010 2A4902 LD HL,($0249) 3013 CD4446 CALL $4644 3016 CD2130 CALL $3021 3019 E1 POP HL 301A CD4446 CALL $4644 301D E1 POP HL 301E 224902 LD ($0249),HL 3021 3A6501 LD A,($0165) 3024 FE03 CP 03 3026 CA3630 JP Z,$3036 3029 3A6F5A LD A,($5A6F) 302C B7 OR A 302D CA4C30 JP Z,$304C 3030 CD9030 CALL $3090 3033 C33930 JP $3039 3036 CD9530 CALL $3095 3039 3E22 LD A,22 303B CD6137 CALL $3761 303E 2AC601 LD HL,($01C6) 3041 E5 PUSH HL 3042 23 INC HL 3043 23 INC HL 3044 22C601 LD ($01C6),HL 3047 0602 LD B,02 3049 C3832F JP $2F83 304C 2AC601 LD HL,($01C6) 304F 010B02 LD BC,$020B 3052 CDDE56 CALL $56DE 3055 CDF22E CALL $2EF2 3058 2A1902 LD HL,($0219) 305B 22C601 LD ($01C6),HL 305E 2A1B02 LD HL,($021B) 3061 C3DB56 JP $56DB 3064 2A4702 LD HL,($0247) 3067 CD4446 CALL $4644 306A 3A6501 LD A,($0165) 306D FE03 CP 03 306F CA7A30 JP Z,$307A 3072 3E11 LD A,11 3074 CDC92E CALL $2EC9 3077 C38230 JP $3082 307A CD9530 CALL $3095 307D 3EEB LD A,EB 307F CD6137 CALL $3761 3082 2A4502 LD HL,($0245) 3085 CD4446 CALL $4644 3088 3A6501 LD A,($0165) 308B FE03 CP 03 308D CA9530 JP Z,$3095 3090 3E21 LD A,21 3092 C3C92E JP $2EC9 3095 3E2A LD A,2A 3097 C3C92E JP $2EC9 309A 3E3A LD A,3A 309C C3C92E JP $2EC9 309F 3E32 LD A,32 30A1 C3C92E JP $2EC9 30A4 3E22 LD A,22 30A6 C3C92E JP $2EC9 30A9 06C2 LD B,C2 30AB C3B030 JP $30B0 30AE 06CA LD B,CA 30B0 3A1F02 LD A,($021F) 30B3 B7 OR A 30B4 C8 RET Z 30B5 C5 PUSH BC 30B6 CD6931 CALL $3169 30B9 CD2537 CALL $3725 30BC F1 POP AF 30BD C3C92E JP $2EC9 30C0 3A6202 LD A,($0262) 30C3 B7 OR A 30C4 C8 RET Z 30C5 2A6701 LD HL,($0167) 30C8 225D01 LD ($015D),HL 30CB AF XOR A 30CC 32E901 LD ($01E9),A 30CF 67 LD H,A 30D0 6F LD L,A 30D1 226701 LD ($0167),HL 30D4 CDCE49 CALL $49CE 30D7 3A9302 LD A,($0293) 30DA B7 OR A 30DB C8 RET Z 30DC 47 LD B,A 30DD 3A6601 LD A,($0166) 30E0 B7 OR A 30E1 C0 RET NZ 30E2 2ACC01 LD HL,($01CC) 30E5 E5 PUSH HL 30E6 C5 PUSH BC 30E7 CD5131 CALL $3151 30EA 3E22 LD A,22 30EC CDC62E CALL $2EC6 30EF C1 POP BC 30F0 05 DEC B 30F1 CA1E31 JP Z,$311E 30F4 C5 PUSH BC 30F5 3EEB LD A,EB 30F7 CD6137 CALL $3761 30FA CD5131 CALL $3151 30FD 3E22 LD A,22 30FF CDC62E CALL $2EC6 |
4000 2053 JR NZ,53 4002 74 LD (HL),H 4003 61 LD H,C 4004 74 LD (HL),H 4005 65 LD H,L 4006 6D LD L,L 4007 65 LD H,L 4008 6E LD L,(HL) 4009 74 LD (HL),H 400A 204E JR NZ,4E 400C 75 LD (HL),L 400D 6D LD L,L 400E 62 LD H,D 400F 65 LD H,L 4010 F24E6F JP P,$6F4E 4013 74 LD (HL),H 4014 2061 JR NZ,61 4016 2056 JR NZ,56 4018 61 LD H,C 4019 72 LD (HL),D 401A 69 LD L,C 401B 61 LD H,C 401C 62 LD H,D 401D 6C LD L,H 401E 65 LD H,L 401F 204E JR NZ,4E 4021 61 LD H,C 4022 6D LD L,L 4023 E5 PUSH HL 4024 49 LD C,C 4025 6C LD L,H 4026 6C LD L,H 4027 65 LD H,L 4028 67 LD H,A 4029 61 LD H,C 402A 6C LD L,H 402B 204C JR NZ,4C 402D 6F LD L,A 402E 67 LD H,A 402F 69 LD L,C 4030 63 LD H,E 4031 61 LD H,C 4032 6C LD L,H 4033 2046 JR NZ,46 4035 6F LD L,A 4036 72 LD (HL),D 4037 6D LD L,L 4038 204F JR NZ,4F 403A 70 LD (HL),B 403B 65 LD H,L 403C 72 LD (HL),D 403D 61 LD H,C 403E 74 LD (HL),H 403F 6F LD L,A 4040 F24461 JP P,$6144 4043 74 LD (HL),H 4044 61 LD H,C 4045 2050 JR NZ,50 4047 6F LD L,A 4048 6F LD L,A 4049 6C LD L,H 404A 204F JR NZ,4F 404C 76 HALT 404D 65 LD H,L 404E 72 LD (HL),D 404F 66 LD H,(HL) 4050 6C LD L,H 4051 6F LD L,A 4052 77 LD (HL),A 4053 3B DEC SP 4054 204F JR NZ,4F 4056 75 LD (HL),L 4057 74 LD (HL),H 4058 206F JR NZ,6F 405A 66 LD H,(HL) 405B 204D JR NZ,4D 405D 65 LD H,L 405E 6D LD L,L 405F 6F LD L,A 4060 72 LD (HL),D 4061 F9 LD SP,HL 4062 4C LD C,H 4063 69 LD L,C 4064 74 LD (HL),H 4065 65 LD H,L 4066 72 LD (HL),D 4067 61 LD H,C 4068 6C LD L,H 4069 2053 JR NZ,53 406B 74 LD (HL),H 406C 72 LD (HL),D 406D 69 LD L,C 406E 6E LD L,(HL) 406F 67 LD H,A 4070 2069 JR NZ,69 4072 73 LD (HL),E 4073 2074 JR NZ,74 4075 6F LD L,A 4076 6F LD L,A 4077 206C JR NZ,6C 4079 61 LD H,C 407A 72 LD (HL),D 407B 67 LD H,A 407C E5 PUSH HL 407D 49 LD C,C 407E 6E LD L,(HL) 407F 76 HALT 4080 61 LD H,C 4081 6C LD L,H 4082 69 LD L,C 4083 64 LD H,H 4084 2044 JR NZ,44 4086 61 LD H,C 4087 74 LD (HL),H 4088 61 LD H,C 4089 204C JR NZ,4C 408B 69 LD L,C 408C 73 LD (HL),E 408D 74 LD (HL),H 408E 2045 JR NZ,45 4090 6C LD L,H 4091 65 LD H,L 4092 6D LD L,L 4093 65 LD H,L 4094 6E LD L,(HL) 4095 74 LD (HL),H 4096 2069 JR NZ,69 4098 6E LD L,(HL) 4099 2049 JR NZ,49 409B 2F CPL 409C CF RST 1 409D 55 LD D,L 409E 6E LD L,(HL) 409F 62 LD H,D 40A0 61 LD H,C 40A1 6C LD L,H 40A2 61 LD H,C 40A3 6E LD L,(HL) 40A4 63 LD H,E 40A5 65 LD H,L 40A6 64 LD H,H 40A7 2044 JR NZ,44 40A9 4F LD C,A 40AA 204E JR NZ,4E 40AC 65 LD H,L 40AD 73 LD (HL),E 40AE F44964 CALL P,$6449 40B1 65 LD H,L 40B2 6E LD L,(HL) 40B3 74 LD (HL),H 40B4 69 LD L,C 40B5 66 LD H,(HL) 40B6 69 LD L,C 40B7 65 LD H,L 40B8 72 LD (HL),D 40B9 2054 JR NZ,54 40BB 6F LD L,A 40BC 6F LD L,A 40BD 204C JR NZ,4C 40BF 6F LD L,A 40C0 6E LD L,(HL) 40C1 E7 RST 4 40C2 49 LD C,C 40C3 6C LD L,H 40C4 6C LD L,H 40C5 65 LD H,L 40C6 67 LD H,A 40C7 61 LD H,C 40C8 6C LD L,H 40C9 204F JR NZ,4F 40CB 70 LD (HL),B 40CC 65 LD H,L 40CD 72 LD (HL),D 40CE 61 LD H,C 40CF 74 LD (HL),H 40D0 6F LD L,A 40D1 F24D69 JP P,$694D 40D4 73 LD (HL),E 40D5 6D LD L,L 40D6 61 LD H,C 40D7 74 LD (HL),H 40D8 63 LD H,E 40D9 68 LD L,B 40DA 65 LD H,L 40DB 64 LD H,H 40DC 2050 JR NZ,50 40DE 61 LD H,C 40DF 72 LD (HL),D 40E0 65 LD H,L 40E1 6E LD L,(HL) 40E2 74 LD (HL),H 40E3 68 LD L,B 40E4 65 LD H,L 40E5 73 LD (HL),E 40E6 69 LD L,C 40E7 F3 DI 40E8 43 LD B,E 40E9 6F LD L,A 40EA 6E LD L,(HL) 40EB 73 LD (HL),E 40EC 65 LD H,L 40ED 63 LD H,E 40EE 75 LD (HL),L 40EF 74 LD (HL),H 40F0 69 LD L,C 40F1 76 HALT 40F2 65 LD H,L 40F3 204F JR NZ,4F 40F5 70 LD (HL),B 40F6 65 LD H,L 40F7 72 LD (HL),D 40F8 61 LD H,C 40F9 74 LD (HL),H 40FA 6F LD L,A 40FB 72 LD (HL),D 40FC F3 DI 40FD 49 LD C,C 40FE 6D LD L,L 40FF 70 LD (HL),B |
4000 20 53 74 61 74 65 6D 65-6E 74 20 4E 75 6D 62 65 Statement Numbe 4010 F2 4E 6F 74 20 61 20 56-61 72 69 61 62 6C 65 20 .Not a Variable 4020 4E 61 6D E5 49 6C 6C 65-67 61 6C 20 4C 6F 67 69 Nam.Illegal Logi 4030 63 61 6C 20 46 6F 72 6D-20 4F 70 65 72 61 74 6F cal Form Operato 4040 F2 44 61 74 61 20 50 6F-6F 6C 20 4F 76 65 72 66 .Data Pool Overf 4050 6C 6F 77 3B 20 4F 75 74-20 6F 66 20 4D 65 6D 6F low; Out of Memo 4060 72 F9 4C 69 74 65 72 61-6C 20 53 74 72 69 6E 67 r.Literal String 4070 20 69 73 20 74 6F 6F 20-6C 61 72 67 E5 49 6E 76 is too larg.Inv 4080 61 6C 69 64 20 44 61 74-61 20 4C 69 73 74 20 45 alid Data List E 4090 6C 65 6D 65 6E 74 20 69-6E 20 49 2F CF 55 6E 62 lement in I/マUnb 40A0 61 6C 61 6E 63 65 64 20-44 4F 20 4E 65 73 F4 49 alanced DO Nes.I 40B0 64 65 6E 74 69 66 69 65-72 20 54 6F 6F 20 4C 6F dentifier Too Lo 40C0 6E E7 49 6C 6C 65 67 61-6C 20 4F 70 65 72 61 74 n.Illegal Operat 40D0 6F F2 4D 69 73 6D 61 74-63 68 65 64 20 50 61 72 o.Mismatched Par 40E0 65 6E 74 68 65 73 69 F3-43 6F 6E 73 65 63 75 74 enthesi.Consecut 40F0 69 76 65 20 4F 70 65 72-61 74 6F 72 F3 49 6D 70 ive Operator.Imp |