대우 MSX2는 VDP V9938에 직결하는 라이트펜 회로를 내장하고 (2nd Light Pen)이를 사용하기 위해서 한글 BASIC에서 약간의 확장을 했는데, 순정상태의 MSX2에서는 이를 바로 쓸 수 있는 방법이 없어서 다음과 같이 써야한다.
CALL ADJUST : 대우 라이트펜 모드 온
-> VPD(9)=72 = &B01001000 (0:마우스모드 OFF/1:라이트펜모드 ON)
PAD(20) : 라이트펜 디텍트
PAD(23) : 라이트펜 스위치 디텍트
-> VDP(-1) 의 값이 128이면 라이트펜 디텍트, 64면 스위치 디텍트. 192면 둘다 디텍트
128=&B10000000
64=&B01000000
192=&B11000000
PAD(21) : 라이트펜 X좌표
->VPD(-3)값
PAD(22): 라이트펜 Y좌표
->VPD(-5)값
노이즈로 쓰레기 값이 많고, 세로 좌표가 아직 제대로 나오지 않는다. ㅡㅅ-);;;;
그리고 7407을 거쳤을 때 제대로 값이 안 나왔다. 펜쪽 회로 왕창 손봐야할듯.
7407이 오픈콜렉터라서 그냥 연결해두면 High를 특정할 수 없으므로 Pull Up저항 4.7K를 각각 붙여주는 것으로 해결.
참고로 PAD(8)~(11)까지의 라이트펜은 산요 라이트펜 유니트를 끼웠을 때 동작하는 명령으로 보인다.