; This is a super simple simh script to test the IMP RTC and verify that it is | |
; incrementing at the correct 100us interval. It simply waits for the clock | |
; count to overflow (which takes 65535 * 100us or about 6.5 seconds) and then | |
; repeats for a total of 10 iterations. If all is well, this loop should take | |
; pretty close to 65 seconds to complete. | |
; | |
; RLA [15-Jun-13] | |
echo | |
echo SIMH IMP RTC INTERVAL CALIBRATION TEST | |
; Turn on the RTC (this requires extended interrupt support) | |
set cpu extint=16 | |
set rtc enabled | |
; Turn the clock on (OCP 40 ==> CLKON) ... | |
d 1000 030040 | |
; Loop reading the clock register until it becomes negative ... | |
d 1001 131040 | |
d -m 1002 HLT | |
d -m 1003 SMI | |
d -m 1004 JMP 1001 | |
; Loop reading the clock register until it becomes positive again ... | |
d 1005 131040 | |
d -m 1006 HLT | |
d -m 1007 SPL | |
d -m 1010 JMP 1005 | |
; And repeat the above for ten iterations ... | |
d -m 1011 IRS 1015 | |
d -m 1012 JMP 1001 | |
d -m 1013 HLT | |
d -m 1014 0 | |
d -m 1015 177766 | |
; That's it... | |
d p 1000 | |
echo Start your stopwatch and at the same moment type "GO". | |
echo The program should halt in exactly 65 seconds ... | |