2013년 6월 24일 월요일

HI-TECH C - R800 곱셈 명령 테스트

R800은 파나소닉의 MSXturboR 모델에 들어가는 CPU 이름입니다.

Z80 호환 CPU이긴 하지만 속도가 무지빠르다는 장점을 갖고 있지요.


이번에는 R800 추가된 명령어인 MULUW 를 테스트해봤습니다.


사실 R800에 추가된 명령은 아래 딱 두개뿐인데요.

8BIT 곱셈명령 MULUB, 16BIT 곰셈명령 MULUW 


아래 그림에서 처럼,

16BIT x 16BIT 곱셈은 MULUW HL,BC밖에 못쓰는걸 알수있어요.




실제 C 코딩에서 활용할 수 있도록,

HI-TECH C의 16BIT 곱셈 루틴을 바꿔서 돌려보았습니다.

IMUL.AS 파일의 소스코드입니다.

파랗게 선택된 부분이 r800only가 선언된 LIB에서 동작하게 됩니다.

전체 코드가 MULUW HL,BC 명령으로 대체된걸 볼수 있습니다.




실제로 C로 코딩해서 테스트해봅니다~

아래처럼 간단 곱셈 루프를 돌려보는거죠! ㅎ.ㅎ




아래는 MAKEFILE용 CFG설정입니다.

뱅크2번은 LIBCMSXT.LIB로 링크되는걸 볼수 있습니다.

일반 LIBCMSX2.LIB와는 IMUL 루틴이 차이가 납니다.




아래는 제 터보알에서 구동해본 모습입니다.

CPU는 R800 DRAM인 고속 모드 상태로 동작중입니다.




실제로 테스트 해보실 분은 첨부파일 받아보셔요.

소스도 들어있습니다.

Download: R800_MUL_20130624.zip

Download: R800_MUL_SRC_20130624.zip