Macintosh ROM Burning (작성중) |
||||||
|
||||||
first : 2016.04.09.(土) | ||||||
2014년 경 용감하게 롬라이터, 롬프로그래머라는 물건을 하나 구입했다. 중국산 G540이라는 모델로 가격도 저렴하고 USB 타입이라 속도도 빨랐다. 그리고 지원하는 롬하드웨어도 무척 많았고 특히 소켓이 40핀 까지 있었다. 롬라이터를 구입한 목적은 당연히 68K 맥의 롬을 굽거나 Atmega 128 내부롬에 프로그램을 넣으려는 목적이었다. Zecca님의 블로그를 읽었는데 레트로기기의 롬은 저가 중국산 USB 타입 롬라이터는 대부분 지원하지 않는다고 해서 여러가지를 찾아보고 가능한 많은 롬을 지원하는 기기를 찾아보다가 선택한 것이 G540 이었다. 구형 프린터 포트 롬라이터를 구입하면 레트로 기기의 롬 지원은 더 확실하지만 최근의 플래시롬 등은 지원하지 않고 구하기도 어렵고 가격도 엄청나게 비싸고, 특히 느린 속도가 예상되기에 (Atmega 128 LPT 프로그래머 사용 경험) 돈을 그냥 버린다는 느낌으로 싼맛에 구입한 것이다. 물론 구입 후 3달 만인가에 배송이 되었고 그땐 이미 롬라이터에 대한 흥미를 잃어버렸기에 설치 소프트웨어만 설치하고 구석에 처박아 놓은지 2년이 흘러 버렸다. 최근에 봄맞이 청소를 하다가 누액으로 완전히 부식되서 부품용으로 보관해 두었던 클래식 2 보드를 다시 살펴보았다. 특히 ROM 부위가 부식이 심해서 4개의 ROM중 다리가 정상적으로 붙어있는 ROM은 1개 밖에 없었다. 우연히 이 ROM을 한번 롬라이터로 읽어보면 어떨까 생각이 들었다. 이미 ROM 소켓에서 빼놓은 것이기에 다리가 온전히 붙어 있는 이 ROM이 몇번째 ROM인지는 모르는 상태였다. 물론 난 롬라이터를 한번도 사용해 본적이 없었다. 하지만 클래식2 의 ROM은 512KB 이고 128K*8bit 32pin Mask ROM 4개로 이루어져 있다는 사전 정보를 알고 있었다. (40핀 ROM 2개로 이루어진 후기형 보드도 있다) 또한 각 Pin 의 정보도 조사해 둔 것이 있어서 핀배열이 유사한 32pin 으로 디바이스를 설정하고 ROM을 읽어보았다. 맞지 않는 디바이스라는 경고가 뜨면서 계속 할꺼냐고 물어본다. 몇몇 핀은 연결이 이상한지 빨갛게 표시되었다. 어차피 망가진 거라 생각하고 계속 진행하니 뭔가 빠르게 읽기 시작했다. 읽어들인 데이터를 보니 00,01,FF 등으로 채워져 있는데 읽기 실패가 분명했다. 하지만 뭔가 읽는다는게 신기해서 디바이스를 몇번 바꾸어 했더니... 놀랍게도 뭔가 데이터가 있는 값들이 채워졌다. 아래 그림은 최종 설정된 디바이스다. ![]() 디바이스 중 NEC 27C010으로도 설정해 읽어보았는데 데이터가 동일하였다. 읽은 데이터중의 초기 일부분이다. 00000000 : 0E 2A FA FA F1 00 07 FA 04 FA FA 00 E5 D0 BB A4 00000010 : 00 96 B0 E6 E0 60 5C 02 40 7B FA 12 00 10 28 08 읽은 데이터를 파일로 저장해 놓았지만 마스크 ROM에서 제대로 읽었는지, 마스크 ROM이 손상되어서 나온 엉뚱한 값인지 알 수 없었다. 그러다 문득 클래식2 ROM data를 다운 받은 것이 생각나서 hex editor로 열어 보았다. 인터넷 상에서 돌아다니는 클래식2 ROM data는 ROM을 물리적으로 직접 구운것이 아니라 GetROM,CopyROM 이라는 프로그램으로 소프트웨어적으로 얻은 것으로 추측된다. 아래는 클래식2 ROM의 hex 값중 일부분 이다. 00000000 : 31 93 67 0E 00 00 00 2A 06 7C 4E FA 00 80 4E FA 00000010 : 00 7C 16 F1 00 00 00 00 00 44 00 07 EC 10 4E FA 00000020 : 12 20 00 04 C9 90 4E FA 22 E8 4E FA 00 60 00 00 00000030 : 00 97 B9 E5 00 AC 58 D0 00 98 7F BB 00 AB 6C A4 00000040 : 00 08 00 00 00 00 9A 96 00 00 99 B0 00 00 9A E6 00000050 : 00 00 5D E0 00 00 CC 60 00 00 00 5C 4E 7A 00 02 00000060 : 32 00 02 40 FE FE 4E 7B 00 02 45 FA 00 1E F0 12 00000070 : 40 00 F0 00 24 00 F0 10 4C 00 F0 28 40 00 00 08 이걸로 2가지 확실한 사실을 알수있었다. 첫째 다리가 멀정한 마스크 ROM은 4번째 ROM 이었던 것이고 G540 롬라이터는 제기능을 확실히 한다는 것이다. 다음으로 추측가능한 것은 다리가 부식되서 떨어진 마스크 ROM 들도 다리를 다시 붙여주고 통전되게 하면 제기능을 할 수 있겠고, 클래식2 ROM을 4개로 쪼개서 파일을 만들어 EPROM(27C010) 4개에 각각 넣어주면 클래식2 ROM을 물리적으로 동일하게 복제할 수 있다는 것이다. 27C010은 오직 한번만 쓰기가능한 EPROM 이기에 향후 다른 ROM사용(IIci ROM)을 위해선 27C1000 을 구입하는게 좋을듯 해서 중국에 주문해 놓았으니 여러달 후에 도착할 것이다. 한가지 이상한 점은 ROM에서 읽은 데이터를 저장한 파일크기가 512KB 였다. 파일 크기가 1/4 이어야 해서 자세히 비교해 보니 4번 반복되고 있었다. 롬라이터에서 저장된 데이터를 로드시키니 1/4만 로드 되었다. 클래식2 ROM 파일의 내용을 4개로 쪼개려면 8bit 씩 32bit 간격으로 파일을 읽어와서 저장하는 프로그램을 작성해야 하는데 예전 만능리모컨 프로그램에서 파일을 다루던 기법을 사용하면 될 것 같은데... 갑자기 귀찮아 진다. 이미 이런 프로그램이 있을텐데.... (롬라이터는 윈도용이니 윈도용 프로그램을 작성해야 하는게 더 편리하긴 한데 더 하기 싫어진다는... 엑셀 매크로도 있을 듯한데....) 결국 프로그램 짜기는 머리가 딸려서 클래식2 ROM 파일을 HxD 프로그램에서 열어서 텍스트 형식으로 파일을 내보내고 그 텍스트 파일을 엑셀에서 너비가 일정한 형식으로 불러와서 4개로 편집해서 나누었다. 이 나누어진 자료를 다시 HxD 헥스에디터 붙여서 ROM 파일을 4개로 나누었다. 프로그램 작성 보다 매우 원시적이지만 그리 큰 수고가 안드니 해볼만하다. 주문한 EPROM 이 도착하면 클래식2 ROM 과 교체해서 테스트 해볼 예정이다. 향후과제는 ROM HEX 데이터를 디스어셈블 해서 (TMON, MacNosy, Super RESedit, MacsBug 등등)... 어쨌든 G540 구입이 그냥 돈을 버린 건 아닌듯 하다. 그리고 40핀 소켓이므로 클래식2 후기 로직보드의 40pin 마스크 ROM도 어쩌면 읽고 쓸 수 있다는 생각도 든다. 희망적인 소식은 G540이 윌리엄 롬라이터 USB 버젼과 유사한 기능을 가지고 있다는 기사를 읽었다는 것이고 정 안돼면 핀배열을 바꿔주는 소켓도 자작해 적용 시킬 수 있다는 것을 안 것이다. 물론 귀찮지만... Marcronix MX27C4100, 27C4100, 27C4100DC Eproms program by Willem 3.1 board MX27C4100 은 윌리엄 라이터에서 27C400 으로 설정하면 된다고 한다! * 2016년 4월 15일(금) EPROM 5개가 중국에서 도착했다! * 유시민의 글쓰기 특강을 모두 읽었다. 읽고 나니 쓴 글이 엉망이라 느껴진다. [2016. 4.15.(금)] 중국에서 EPROM(27C1001) 5개가 도착했다. 한달은 걸릴줄 알았는데 약 10일 만에 도착했다. ROM을 굽기전에 생각할 점은 다음과 같다. 1. 실제 Classic II 마스크 롬에서 얻은 파일로 EPROM을 구워 정상작동 하는 Classic II 에 적용해 본다. HH HL LH LL 00000000 : 31 93 67 0E HH : D24 ~ D31, HL : D16 ~ D23, LH : D8 ~ D15, LL : D0 ~ D7 이므로 ![]() 구운 EPROM은 864 자리에 위치시키면 된다. ![]() 잘 작동한다. Classic II 로직보드는 소켓방식이어서 ROM을 교체하기 쉽다! G540 롬라이터도 오류없이 작동한다. 이제 EPROM을 지워볼 차례다. EPROM을 지우기 위해서는 UV가 필요하다. 검색결과 햇빛에 20분 정도 노출시키면 지워진다고 한다. - 햇빛으로는 지워지지 않는다. 하루종일 햇빛에 노출시켜도 별 효과가 없다. - 결국 물컵 UV 살균기로 지웠다. 하지만 1bit 가 오류나서 다시 지워야 했다. - EEPROM 이 편리해서 W29EE011을 다시 주문했다. |
||||||
<- Prev | ||||||
|
||||||