2017-04-12 10 views
0

가 어떻게 기본 6502 시간의 X 금액을 기다려야 할 기본 6502에서 x 초를 기다려야? 저는 VICE xpet을 사용 중입니다. 문자를 인쇄하고 잠시 기다렸다가 삭제 한 다음 잠시 동안 상태 표시기로 다시보고 싶습니다. 유일한 문제는 표시가 절대로 표시되지 않도록 빨리 삭제한다는 것입니다. 내가 참조에 대한 그런 명령을 찾고, 시도했지만 조금 밖에 기다리고 평평한 아무것도 없습니다. 나는 거대한 for 루프를 만들면 무언가에 의해 기계를 느리게 감속시킬 수는 있지만 가능하다면 그렇게하지 않을 것을 알고있다. 더 좋은 방법이 없을까요? 감사합니다.어떻게

+0

뭔가. 감사! 페이지 하단 향해 지연 서브 루틴이 - https://www.c64-wiki.com/wiki/TIME : - – 18AdrianoH

+1

은 @BillHileman 쓴 것을 바탕으로 좀 봐. 18AdrianoH @ – Pawel

+0

: 당신은 SO 여기에 좋은 정보를 얻고 있지만, 경우에 당신이 그것에 대해 알지 못했다, 또한 http://retrocomputing.stackexchange.com/있다. –

답변

1

하는 I는 6502 (C-64/VIC-20)에 프로그램 한 이후 수십 년이되었습니다하지만 난 BASIC의 자신의 버전이 키워드 TIMER했다 확신합니다. 메모리가 작동하면 밀리 초를 계산하지만 잘못 될 수 있습니다. 당신은 그걸 가지고 놀아야 할 수도 있습니다. 변수를 TIMER와 같게 설정하고, for/next 루프가 잠시 동안 기다린 후 값을 다시 확인하십시오. 두 번째 발생 얼마나 많은 틱 파악하면, 당신은 변수 = 타이머 시작 플러스 초당 일정 틱까지 다음 일정 및 루프 (첫번째 물론, 루프 전에 타이머 변수를 설정) 것을 확인 할 수 있습니다.

2

당신은 목적 타이밍에 대한 시스템 변수 TI를 참조 할 수 있습니다. 변수의 값은 1/60 초마다 자동으로 증가합니다. 그것은 완벽하지는 않지만 작동합니다. 예를 들어 아래

각 초 TI의 현재 값을 출력 할 것이다 : 자바에 Thread.sleep (X)와 같은

10 PRINT "START " TI 
20 T0=T1 
30 IF TI-T0>=60 THEN PRINT TI;TI-T0 : GOTO 20 
40 GOTO 30