APPLE][와 IBM FDD
오래전에 2DD 디스켓에 기록하는 인터페이스를 만들었었습니다만, 호환성되는 기종과 그렇지 않은 기종이 있었습니다.
문제 해결을 위해 노력했지만, 시간상.. 미뤄 두었었습니다.
그간 바쁜 일들이 많아 SD DISKII Emulator도 만들지 못하고 있습니다..
사실 3.5" 드라이버와 디스켓은 아직 까지는 쉽게 구할수 있는데, 예전의 2DD디스켓을 구하기가 쉽지 않고
또 2HD디스켓을 강제로 2DD로 만들어서 사용하는것은 기록 시그널이 달라 안정성에 문제가 있을수 있을것 같아 썩 마음에 들지 않았습니다.
그래서 싸게 쉽게 구할수 있는 2HD 디스켓을 사용하기로 마음먹었습니다.
그간 이사다 뭐다 일들이 많아 차일 피일 미루다가, 이제는 개인 LAB실이 나름 갖춰져서 필요한 최소의 장비만 새로운 곳으로 이동시켜 놓고 새로운 LAB실 기념으로 작업을 착수 하였습니다.
APPLE과 플로피 디스켓에 향수가 많아 디스크드라이버에 대해 다시 연구를 시작해 보았습니다.
예전에 GIGO라고 말한적이 있지요. 우둔한 자는 이것이 무슨 말인지 못 알아 들었겠지만,
이것은 제대로 된 Data를 기록한 후에야 제대로 된 Data를 읽을 수 있다라는 이야기 입니다.
즉, 개발할때는 Reading이 먼저가 아니라 Writing이 먼저 우선되어야 하고 이 Writing된후에야 Reading을 검사해야 합니다.
어떻게든 잘 Writing이 되었다면 나름대로의 Decoding을 구성할수 있겠지요.
각설하고..
APPLE2의 DISKII는 Data를 기록할때 GCR포맷을 사용합니다.
이러한 Data를 MFM용 IBM FDD에 당연히 그냥 쓰고 읽을 수가 없지요.
그래서 어떻게든 GCR Data를 변환하여야 하며, 기타 다른 디스크드라이버 콘트롤 신호도 APPLE의 I/O에 맞게 변환해줘야 합니다.
애플에서는 각Bit를 4uS마다 Data bit를 저장합니다.
HD 디스켓을 제어하려면 2us 단위의 Data를 처리해야 합니다.
APPLE에서는 절대로 2HD를 그냥 처리할수 없어 AVR MPU를 사용하였습니다.
구해놓은 쓸만한 보드를 기존에 만들어둔 I/O장치에 추가하여 Data의 Encoder/Decoder를 구현하였습니다.
ATTINY2313이 20Mhz로 동작하는데도 2uS신호를 처리하기가 대단히 벅찹니다.
오버클로킹이라도 할까 생각했었습니다.
10여일간의 시행 착오와 프로그램 최적화 끝에 결국 아래와 같이 HD디스켓을 잘 읽고 쓸수 있게 되었습니다.
이에 기쁜 마음에 동영상을 올려봅니다.
해당 인터페이스는 안정성과 최적화를 더 거친후에 PCB를 만들 계획입니다.
이로써 IBM FDD의 연결은 모두 끝난것 같습니다.
사용한 APPLE은 예전에 만든 IBM케이스를 사용한 APPLE입니다.
동영상에 보시면 APPLE의 FDD는 7번 슬롯에 꽂혀 있고
IBM의 FDD는 6번슬롯에 꽂혀 있습니다.
IBM PC용 FDD는 예전과 같이 SIDE A, SIDE B를 APPLE의 D1, D2에 맞춰 두어서 마치 2대의 FDD처럼 동작합니다.
IBM PC용 FDD는 삼성FDD를 사용하였으며 HD로 동작하고 300RPM으로 회전하도록 약간의 Modification이 이루어져 있습니다.
첫번째 동영상은 포맷과 COPY를 해보는 화면입니다.
두번째 동영상은 부하를 걸어 TEST하는 화면입니다.
아주 잘~ 됩니다.
이번 프로젝트는 꽤나 어려웠네요. 불가능할 줄 알았습니다.
이제는 SD DISKII Emulator에 집중 할 수 있겠습니다.
왼쪽이 이번에 사용한 MPU보드입니다. 적당한것 임시로 사용했습니다. MPU는 ATTINY2313이며 20Mhz로 동작합니다.
이것은 사실 APPLE의 40배정도의 속도를 냅니다.
오른쪽은 APPLE과의 I/O등을 담당합니다. 몇 가지 TTL과 OPAMP그리고 90S2313 4Mhz가 하나 들어 갑니다.
'◆ APPLE II' 카테고리의 다른 글
SD DISKII Emulator for ProDos 8 (0) | 2013.08.29 |
---|---|
APPLE][ Puls F000~FFFF Monitor ROM (0) | 2013.08.20 |
APPLE2용 SD Memory Emulator를 위하여 (0) | 2012.05.14 |
ROM WRITER 카드 및 BASIC 소스 (2) | 2012.04.28 |
SN76489 (0) | 2012.04.22 |