2013-02-22 6 views
0

CP/M에서 유서 깊은 M80 및 L80 도구를 사용하여 ROM 이미지를 작성하려고합니다. (이것은 CP/M 에뮬레이터 용입니다. 따라서 CP/M 도구를 사용하는 이유는 무엇입니까?)CP/M에 ROM 이미지 만들기

불행히도 L80은 정말 조잡한 것처럼 보입니다. AFAICT는 절대 주소로 각 객체 파일을로드하고 수정합니다. , 0x0100부터 디스크까지 모든 것을 덤프합니다. 즉, 자체 작업 영역 외부의 주소에 기반한 오브젝트 파일은 전혀 작동하지 않는 것입니다 (단지 오류 메시지가 생성됨). 내 ROM의 기본 주소는 0xd000입니다.

M80과 L80을 사용하면 가능합니까? 그렇다면 어떻게해야합니까? 또는 누구든지 추천 할 수 있습니다 (그리고 나를 가리킨!) CP/M 어셈블러/링커 제품군은 무엇입니까?

(나는 가능하면 크로스 컴파일을 피하고자합니다.)

답변

1

당신은 단지 당신은 어셈블러 출력의 위치를 ​​가지고 M80의 .phase 지시어를 사용할 수있는 하나 개의 파일을 조립하는 경우. 여러 소스 파일을 구축하고 끝을 연결하려면

.phase 0D000h 

는, 당신은 여전히 ​​M80를 사용할 수 있지만 http://www.cpm.z80.de/download/pli80_13.zip에서 찾을 수 있습니다 DRI의 링커 LINK.COM을해야합니다. 사용하는 LINK 명령 줄

LINK result=module1,module2,module3[LD000 

가 (가장 가까운 L80에 해당, 내가 생각

L80 /P:D000,module1,module2,module3,result/N/E 

것입니다하지만 당신은 0xCF00이 결과 파일의 처음부터 바이트를 제거해야) 할 것이다.

+0

예, 정상적으로 작동합니다. 감사! (나는 또한 .REL 오브젝트 파일보다는 .HEX 파일을 직접 내보내는 Digital Research의 ASM.COM과 MAC.COM이 매우 높은 ORG 주소에 행복하게 대처한다는 것을 발견했다. 나는 결과를 함께 연결하기를 원하고 그들이 이해하는 어셈블러 구문은 미묘하게 다르다 ...) –