Jonathan カードの解析(1)
今年 4 月に、MicroTrends 社の Jonathan という、Apple IIe 用のカードを手に入れました。68000 が載っていますが、カードのみでソフトもなく、動くかどうかもわからないもので、ROM データを少し調べただけで、放置していました。最近になって、動くバージョンを持っている人と連絡が取れたので、解析を再開してみます。
このカード、Philips の初代 CD-ROM ドライブ CM-100 を Apple II に接続するもので、制御に OS-9 を使っています。百科事典などのソフトが 5台の IIe で共有できたようです。
2 枚のカードで構成され、メインのカードには、10 MHz の 68000 CPU、64K の ROM が二つ、20 MHz クロック、4 列の 30 ピンソケット、いくつかの PAL があります。サブのカードには、MC68681 DUART と 64KB SRAM HM6264 が四つ載っています。サブカードからは、15 ピンと 25 ピンの DSUB コネクタが出ています。CM-100 接続用とシリアル通信用と思われます。
ROM の中身を見てみます。16 KB 領域がありますが、先頭 3KB 程が使われているようです。
先頭 1KB ($000-3FF) は、68000 の割り込みベクター、$400 からプログラムが入っています。コピーライトと、いくつかのメッセージが読めます。
00000000 00 07 ff f0 00 00 04 00 00 00 09 24 00 00 09 2a |...........$...*|
00000010 00 00 09 30 00 00 09 22 00 00 09 22 00 00 09 22 |...0..."..."..."|
00000020 00 00 09 36 00 00 09 22 00 00 09 22 00 00 09 22 |...6..."..."..."|
00000030 00 00 09 22 00 00 09 22 00 00 09 22 00 00 09 3c |..."..."..."...<|
00000040 00 00 09 22 00 00 09 22 00 00 09 22 00 00 09 22 |..."..."..."..."|
*
00000060 00 00 09 44 00 00 09 22 00 00 09 22 00 00 09 22 |...D..."..."..."|
00000070 00 00 09 22 00 00 09 22 00 00 09 22 00 00 09 22 |..."..."..."..."|
*
00000400 46 fc 27 00 4a 39 00 ff 1f 03 67 3a 41 f9 00 01 |F.'.J9....g:A...|
00000410 00 00 43 f9 00 07 ff fe 30 3c 00 01 30 c0 e2 58 |..C.....0<..0..X|
00000420 b3 c8 66 f8 30 3c 00 01 41 f9 00 01 00 00 b0 58 |..f.0<..A......X|
00000430 66 00 00 10 e2 58 b3 c8 66 f4 41 fa 05 d8 60 00 |f....X..f.A...`.|
00000440 00 06 41 fa 05 e6 2e 3c 00 ff c0 00 1e 39 00 ff |..A....<.....9..|
00000450 1f 00 23 c7 00 01 00 00 7e 00 13 c7 00 ff 00 05 |..#.....~.......|
00000460 52 39 00 ff 00 05 45 f9 00 ff 1f 10 13 f2 70 00 |R9....E.......p.|
00000470 00 ff 00 06 42 39 00 ff c0 0d 42 39 00 ff c0 01 |....B9....B9....|
00000480 42 39 00 ff c0 10 13 fc 00 80 00 01 00 0c 61 00 |B9............a.|
00000490 04 3c 61 00 02 c4 61 00 02 f0 4a 39 00 ff 1f 03 |.<a...a...J9....|
000004a0 67 04 61 00 04 56 41 fa 05 bf 61 00 04 4e 41 f9 |g.a..VA...a..NA.|
000004b0 00 ff 1f 40 30 3c 00 1d 00 18 00 80 51 c8 ff fa |...@0<......Q...|
000004c0 13 fc 00 11 00 ff 00 02 13 fc 00 00 00 ff 00 03 |................|
000004d0 61 00 01 f6 41 f9 00 ff 25 00 13 e8 00 01 00 ff |a...A...%.......|
000004e0 00 02 13 e8 00 02 00 ff 00 03 61 00 01 dc 32 3c |..........a...2<|
000004f0 00 06 41 f9 00 ff 25 00 d1 fc 00 00 00 0b 0c 10 |..A...%.........|
00000500 00 ff 67 20 4a 10 67 1c 30 3c 00 1d 43 f9 00 ff |..g J.g.0<..C...|
00000510 1f 40 24 48 d5 fc 00 00 00 03 b5 09 66 06 51 c8 |.@$H........f.Q.|
00000520 ff fa 60 38 d1 fc 00 00 00 23 51 c9 ff d2 41 f9 |..`8.....#Q...A.|
00000530 00 ff 25 00 4a 28 00 01 67 16 13 e8 00 01 00 ff |..%.J(..g.......|
00000540 00 02 13 e8 00 02 00 ff 00 03 61 00 01 7c 60 9e |..........a..|`.|
00000550 41 fa 05 32 61 00 03 a4 60 00 00 ce 22 48 42 81 |A..2a...`..."HB.|
00000560 12 29 00 22 e1 49 12 29 00 21 10 29 00 00 13 c0 |.).".I.).!.)....|
00000570 00 ff 00 02 10 29 00 01 13 c0 00 ff 00 03 61 00 |.....)........a.|
00000580 01 48 4a 41 66 0c 41 fa 05 1e 61 00 03 6e 60 00 |.HJAf.A...a..n`.|
00000590 00 98 41 f9 00 ff 25 00 43 f9 00 01 00 0d 30 3c |..A...%.C.....0<|
000005a0 00 ff 61 00 01 56 45 f9 00 01 00 0d 45 ea 00 0c |..a..VE.....E...|
000005b0 23 ca 00 01 00 04 20 01 53 81 04 80 00 00 00 7b |#..... .S......{|
000005c0 6e f6 33 c1 00 01 00 08 43 f9 00 10 00 00 32 39 |n.3.....C.....29|
000005d0 00 01 00 08 53 41 61 00 00 6c 41 f9 00 ff 25 00 |....SAa..lA...%.|
000005e0 30 3c 00 ff 61 00 01 14 51 c9 ff ec 41 f9 00 00 |0<..a...Q...A...|
000005f0 09 5c 43 f9 00 01 01 0e 30 3c 00 18 61 00 00 fc |.\C.....0<..a...|
00000600 61 00 01 56 70 00 72 00 74 00 76 00 78 00 7a 00 |a..Vp.r.t.v.x.z.|
00000610 7c 00 7e 00 91 c8 93 c9 95 ca 97 cb 99 cc 9b cd ||.~.............|
00000620 9d ce 4e f9 00 01 01 0e 41 fa 04 c7 61 00 02 cc |..N.....A...a...|
00000630 13 fc 00 fe 00 ff 00 04 61 00 00 a4 41 fa 04 02 |........a...A...|
00000640 60 00 fe 04 48 e7 00 60 41 f9 00 01 01 0d 24 79 |`...H..`A.....$y|
00000650 00 01 00 04 b5 c8 66 3e 43 f9 00 01 00 0d 4a 29 |......f>C.....J)|
00000660 00 01 67 58 13 e9 00 01 00 ff 00 02 13 e9 00 02 |..gX............|
00000670 00 ff 00 03 61 00 00 52 41 f9 00 ff 25 00 43 f9 |....a..RA...%.C.|
00000680 00 01 00 0d 30 3c 00 ff 61 00 00 70 45 f9 00 01 |....0<..a..pE...|
00000690 00 0d 45 ea 00 0c 13 ea 00 00 00 ff 00 02 13 ea |..E.............|
000006a0 00 01 00 ff 00 03 d5 fc 00 00 00 02 61 00 00 1a |............a...|
000006b0 23 ca 00 01 00 04 4c df 06 00 4e 75 41 fa 04 0b |#.....L...NuA...|
000006c0 61 00 02 38 60 00 ff 62 13 fc 00 01 00 ff 00 04 |a..8`..b........|
000006d0 61 00 00 0c 4a 39 00 ff 00 04 66 e0 4e 75 48 e7 |a...J9....f.NuH.|
000006e0 00 80 20 79 00 01 00 00 42 10 4c df 01 00 08 39 |.. y....B.L....9|
000006f0 00 01 00 fe 00 00 67 f6 4e 75 12 d8 51 c8 ff fc |......g.Nu..Q...|
00000700 4e 75 48 e7 40 80 61 00 00 22 08 39 00 07 00 ff |NuH.@.a..".9....|
00000710 c0 00 67 f6 42 39 00 ff c0 10 10 39 00 ff c0 00 |..g.B9.....9....|
00000720 61 00 00 08 4c df 01 02 4e 75 48 e7 80 80 42 80 |a...L...NuH...B.|
00000730 10 39 00 01 00 0a e5 08 41 fa 02 7a 20 70 00 00 |.9......A..z p..|
00000740 10 39 00 01 00 0b e2 08 61 00 01 8a 0a 30 00 80 |.9......a....0..|
00000750 00 00 4c df 01 01 4e 75 48 e7 e0 c0 30 3c 00 01 |..L...NuH...0<..|
00000760 41 fa 02 52 32 3c 00 17 22 58 34 3c 00 27 12 fc |A..R2<.."X4<.'..|
00000770 00 a0 51 ca ff fa 51 c9 ff f0 61 00 01 3e 51 c8 |..Q...Q...a..>Q.|
00000780 ff e0 4c df 03 07 4e 75 42 39 00 01 00 0a 42 39 |..L...NuB9....B9|
00000790 00 01 00 0b 4e 75 48 e7 ff fe 0c 00 00 0d 67 00 |....NuH.......g.|
000007a0 00 20 6e 00 00 56 0c 00 00 08 67 00 00 22 0c 00 |. n..V....g.."..|
000007b0 00 0a 67 00 00 18 0c 00 00 09 67 00 00 28 60 3a |..g.......g..(`:|
000007c0 13 fc 00 00 00 01 00 0b 60 00 00 ea 60 44 0c 39 |........`...`D.9|
000007d0 00 00 00 01 00 0b 67 00 00 dc 53 39 00 01 00 0b |......g...S9....|
000007e0 60 00 00 d2 10 3c 00 20 61 ac 12 39 00 01 00 0b |`....<. a..9....|
000007f0 02 01 00 07 66 ee 60 00 00 bc 42 81 12 39 00 01 |....f.`...B..9..|
00000800 00 0b 0c 01 00 50 66 00 00 6e 13 fc 00 00 00 01 |.....Pf..n......|
00000810 00 0b 12 39 00 01 00 0a 52 01 0c 01 00 18 67 00 |...9....R.....g.|
00000820 00 0a 13 c1 00 01 00 0a 60 4c 38 3c 00 01 13 fc |........`L8<....|
00000830 00 17 00 01 00 0a 41 fa 01 7c 34 3c 00 16 24 58 |......A..|4<..$X|
00000840 26 50 36 3c 00 27 14 db 51 cb ff fc 51 ca ff f0 |&P6<.'..Q...Q...|
00000850 61 00 00 68 51 cc ff e0 38 3c 00 01 41 fa 01 b2 |a..hQ...8<..A...|
00000860 34 3c 00 27 24 50 14 fc 00 a0 51 ca ff fa 61 00 |4<.'$P....Q...a.|
00000870 00 4a 51 cc ff ec 41 fa 01 3c 42 81 12 39 00 01 |.JQ...A..<B..9..|
00000880 00 0a e5 09 22 70 10 00 61 00 00 4a 0c 00 00 0a |...."p..a..J....|
00000890 67 00 00 22 12 39 00 01 00 0b e2 09 80 39 00 01 |g..".9.......9..|
000008a0 00 0c 13 80 10 00 12 39 00 01 00 0b 52 01 13 c1 |.......9....R...|
000008b0 00 01 00 0b 4c df 7f ff 4e 75 08 39 00 07 00 ff |....L...Nu.9....|
000008c0 c0 1c 66 08 42 39 00 ff c0 55 4e 75 42 39 00 ff |..f.B9...UNuB9..|
000008d0 c0 54 4e 75 08 39 00 00 00 01 00 0b 66 0e 08 39 |.TNu.9......f..9|
000008e0 00 07 00 ff c0 1c 66 10 61 da 60 0c 08 39 00 07 |......f.a.`..9..|
000008f0 00 ff c0 1c 67 02 61 d4 4e 75 48 e7 80 80 10 18 |....g.a.NuH.....|
00000900 6b 00 00 10 13 c0 00 01 00 0a 13 d8 00 01 00 0b |k...............|
00000910 61 c2 10 18 61 00 fe 80 4a 10 66 f6 4c df 01 01 |a...a...J.f.L...|
00000920 4e 75 4e 73 41 fa 02 2f 60 22 41 fa 02 44 60 1c |NuNsA../`"A..D`.|
00000930 41 fa 02 5e 60 16 41 fa 02 84 60 10 41 fa 02 a9 |A..^`.A...`.A...|
00000940 60 00 00 0a 41 fa 02 d8 60 00 00 02 46 fc 27 00 |`...A...`...F.'.|
00000950 4f f9 00 07 ff fe 61 a2 60 00 fc ce 4a 39 00 fc |O.....a.`...J9..|
00000960 00 00 2e 79 00 00 00 00 2f 39 00 00 00 04 3f 3c |...y..../9....?<|
00000970 27 00 4e 73 43 4f 50 59 52 49 47 48 54 20 28 43 |'.NsCOPYRIGHT (C|
00000980 29 20 31 39 38 35 2c 31 39 38 36 20 4d 41 4e 41 |) 1985,1986 MANA|
00000990 47 45 4d 45 4e 54 20 52 45 53 4f 55 52 43 45 53 |GEMENT RESOURCES|
000009a0 20 49 4e 54 45 52 4e 41 54 49 4f 4e 41 4c 2c 20 | INTERNATIONAL, |
000009b0 4c 54 44 2e 00 ff 04 00 00 ff 04 80 00 ff 05 00 |LTD.............|
000009c0 00 ff 05 80 00 ff 06 00 00 ff 06 80 00 ff 07 00 |................|
000009d0 00 ff 07 80 00 ff 04 28 00 ff 04 a8 00 ff 05 28 |.......(.......(|
000009e0 00 ff 05 a8 00 ff 06 28 00 ff 06 a8 00 ff 07 28 |.......(.......(|
000009f0 00 ff 07 a8 00 ff 04 50 00 ff 04 d0 00 ff 05 50 |.......P.......P|
00000a00 00 ff 05 d0 00 ff 06 50 00 ff 06 d0 00 ff 07 50 |.......P.......P|
00000a10 00 ff 07 d0 00 00 52 41 4d 20 54 45 53 54 20 2d |......RAM TEST -|
00000a20 20 50 41 53 53 45 44 0d 0a 00 00 00 52 41 4d 20 | PASSED.....RAM |
00000a30 54 45 53 54 20 2d 20 46 41 49 4c 45 44 0d 0a 00 |TEST - FAILED...|
00000a40 00 00 41 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 |..Attempting to |
00000a50 72 65 73 74 61 72 74 20 6a 6f 6e 61 74 68 61 6e |restart jonathan|
00000a60 28 74 6d 29 0d 0a 00 ff 49 6e 69 74 69 61 6c 69 |(tm)....Initiali|
00000a70 7a 69 6e 67 20 6a 6f 6e 61 74 68 61 6e 28 74 6d |zing jonathan(tm|
00000a80 29 0d 0a 00 ff 41 70 70 6c 69 63 61 74 69 6f 6e |)....Application|
00000a90 20 62 6f 6f 74 20 63 6f 64 65 20 6d 69 73 73 69 | boot code missi|
00000aa0 6e 67 2e 0d 0a 00 ff 41 70 70 6c 69 63 61 74 69 |ng.....Applicati|
00000ab0 6f 6e 20 63 6f 64 65 20 66 69 6c 65 20 69 73 20 |on code file is |
00000ac0 65 6d 70 74 79 2e 0d 0a 00 ff 45 72 72 6f 72 20 |empty.....Error |
00000ad0 72 65 61 64 69 6e 67 20 61 70 70 6c 69 63 61 74 |reading applicat|
00000ae0 69 6f 6e 20 62 6f 6f 74 20 63 6f 64 65 2e 0d 0a |ion boot code...|
00000af0 00 ff 41 6e 20 65 72 72 6f 72 20 68 61 73 20 62 |..An error has b|
00000b00 65 65 6e 20 64 65 74 65 63 74 65 64 20 77 68 69 |een detected whi|
00000b10 6c 65 20 74 72 79 69 6e 67 20 74 6f 0d 0a 20 6c |le trying to.. l|
00000b20 6f 61 64 20 61 6e 20 61 70 70 6c 69 63 61 74 69 |oad an applicati|
00000b30 6f 6e 2e 20 59 6f 75 20 61 72 65 20 62 65 69 6e |on. You are bein|
00000b40 67 20 72 65 74 75 72 6e 65 64 20 74 6f 20 44 4f |g returned to DO|
00000b50 53 2e 0d 0a 00 ff 41 20 62 75 73 20 65 72 72 6f |S.....A bus erro|
00000b60 72 20 68 61 73 20 6f 63 63 75 72 65 64 0d 0a 00 |r has occured...|
00000b70 ff 41 6e 20 61 64 64 72 65 73 73 20 65 72 72 6f |.An address erro|
00000b80 72 20 68 61 73 20 6f 63 63 75 72 65 64 0d 0a 00 |r has occured...|
00000b90 ff 41 6e 20 69 6c 6c 65 67 61 6c 20 69 6e 73 74 |.An illegal inst|
00000ba0 72 75 63 74 69 6f 6e 20 65 72 72 6f 72 20 68 61 |ruction error ha|
00000bb0 73 20 6f 63 63 75 72 65 64 0d 0a 00 ff 41 20 70 |s occured....A p|
00000bc0 72 69 76 69 6c 69 67 65 20 76 69 6f 6c 61 74 69 |rivilige violati|
00000bd0 6f 6e 20 65 72 72 6f 72 20 68 61 73 20 6f 63 63 |on error has occ|
00000be0 75 72 65 64 0d 0a 00 ff 41 6e 20 75 6e 69 6e 69 |ured....An unini|
00000bf0 74 69 61 6c 69 7a 65 64 20 69 6e 74 65 72 72 75 |tialized interru|
00000c00 70 74 20 76 65 63 74 6f 72 20 65 72 72 6f 72 20 |pt vector error |
00000c10 68 61 73 20 6f 63 63 75 72 65 64 0d 0a 00 ff 41 |has occured....A|
00000c20 20 73 70 75 72 69 6f 75 73 20 69 6e 74 65 72 72 | spurious interr|
00000c30 75 70 74 20 65 72 72 6f 72 20 68 61 73 20 6f 63 |upt error has oc|
00000c40 63 75 72 65 64 0d 0a 00 00 00 00 00 00 00 00 00 |cured...........|
00000c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000c60 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
*
00004000