저번에 어셈블리로 그림을 하나 띄웠다고 했는데요
그건 대충 좀 연습이었고, 거기서 발전해서 테스트 프로그램을 만들었습니다.
68000 C/C++ GCC가 있긴 한데, 그거 설치하는법하고 makefile을 몰라서 그냥 모두 어셈블리로 썼습니다.
간단한 프로그램이라, 스택 보호하거나 심지어 서브루틴 call할때도 바깥에서 쓰던 레지스터 데이터를 스택에 백업하는 루틴은 넣지 않았습니다. 귀찮기도 하고, 고작 2중루프가 끝이라 레지스터를 다 쓸 일이 많이 없었거든요.
어셈블리라 함수를 편하게 만들수도 없고 클래스 없으니까 참 답답했어요. 하지만 하드웨어를 직관적으로 제어 가능해서 좋았습니다.
60Hz VBLANK 인터럽트를 부득이하게 쓰지 못하는 상황이라서, nop루프로 일부러 시간지연을 둬서 키 입력을 받고 그랬네요. VBLANK만 쓰면 일이 간단한데 말이지요.
저기 영상 초기에 그래픽 데이터를 RAM으로 불러오는데 좀 느린 건 버블 메모리가 워낙에 느려터져서 그렇습니다.
개떡같지만, 소스코드는 여기있습니다.