Here's a cute test routine, to check ANY of the sounds use the RAMP function. For example Explosion is located at 3600 so use this little program to test that: PROGRAM 0 DPY-RAMP 3600 LABEL 1 RAMP3600 GOTO 1 Now EXEC 0 That will continuously hit the Explosion sound with all the possibilities and you will get a sort of whoosh sound if working, plus you can troubleshoot the 74161...press STOP to stop the 9010. You can also just use RAMP on it's own to check each sound and then when you find a bad one use the little program above to keep it active while you troubleshoot. Then you can turn the board off and replace the part, leaving the 9010 on and waiting...then EXEC 0 again to retest. Works... John :-#)#
I wanted to see if the group is interested in developing a "standard" program design for the 9010A. Attached is a layout, that is a kluge of features I liked in Asteroids & Galaga test programs and the beginings of a Donkey Kong Jr test program. It will not run but it may be helpful as a consistent starting point for programs we write. Any & all suggestions/comments appreciated. Kev ! *GAMENAME Test Routine ! Use in CPU Z80 processor socket INCLUDE "Z80.POD" SETUP TRAP ACTIVE FORCE LINE NO TRAP ACTIVE INTERRUPT NO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! MAIN LOOP ROUTINE ! Proposed standard ! 1 = RAM Test ! 2 = ROM Test ! 3 = SND Test ! 4 = I/O Test ! 5 = DIP Test ! 6 = PROBE Test ! 0 = Run UUT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM 0 DPY-*GAMENAME TST DPY-+-PRESS CONT STOP MAINLOOP: DPY-MNU 1=RAM 2=ROM 3=SND 4=IO 5=DIP IF REG1 = 1 GOTO 1 IF REG1 = 2 GOTO 2 IF REG1 = 3 GOTO 3 IF REG1 = 4 GOTO 4 IF REG1 = 5 GOTO 5 IF REG1 = 6 GOTO 6 IF REG1 = 0 GOTO A GOTO MAINLOOP 1: LABEL 1 EXECUTE PROGRAM TSTRAM GOTO MAINLOOP 2: LABEL 2 EXECUTE PROGRAM TSTROM GOTO MAINLOOP 3: LABEL 3 EXECUTE PROGRAM TSTSND GOTO MAINLOOP 4: LABEL 4 EXECUTE PROGRAM TSTIO GOTO MAINLOOP 5: LABEL 5 EXECUTE PROGRAM TSTDIP GOTO MAINLOOP 6: LABEL 6 EXECUTE PROGRAM TSTPRB GOTO MAINLOOP A: LABEL A EXECUTE PROGRAM TSTRUN GOTO MAINLOOP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !RAM TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM TSTRAM DPY-TESTING PGM RAM R3 M3# RAM SHORT @ 4000-43FF DPY-+-PRESS CONT# STOP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !ROM TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM TSTROM 0: LABEL 0 DPY-ROM VERSION 1 OR 2 ? /1 IF REG1 = 1 GOTO 1 IF REG1 = 2 GOTO 2 GOTO 0 2: LABEL 2 DPY-TESTING ROM F1 ROM TEST @ 6800-6FFF SIG 53C9 DPY-TESTING ROM D E1 ROM TEST @ 7000-77FF SIG 3D7A DPY-TESTING ROM C1 ROM TEST @ 7800-7FFF SIG 232F DPY-TESTING VECTOR ROM NP3 ROM TEST @ 5000-57FF SIG CBED GOTO F 1: LABEL 1 F: LABEL F DPY-ROM TEST COMPLETE STOP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !SND TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM TSTSND REG1 = 40 DPY-Rivet SND. CONT=NEXT DPY-+ SND%1# 0: LABEL 0 WRITE @7C00 = 05 IF REG1 = 25 GOTO 1 GOTO 0 1: LABEL 1 REG1 = 40 DPY-Springs SND. CONT=NEXT SND%1# 2: LABEL 2 WRITE @ 7C00 = 0A IF REG1 = 25 GOTO 3 GOTO 2 3: LABEL 3 REG1 = 40 DPY-JUMP SND. CONT=NEXT DPY-+ SND%1# 4: LABEL 4 WRITE @ 7D01 = FF IF REG1 = 25 GOTO 5 GOTO 4 5: LABEL 5 REG1 = 40 DPY-STOMP SND.CONT=NEXT DPY-+ SND%1# 6: LABEL 6 WRITE @ 7D02 = FF IF REG1 = 25 GOTO 7 GOTO 6 7: LABEL 7 REG1 = 40 DPY-COIN SND. CONT= DPY-+NEXT SND%1# 8: LABEL 8 WRITE @ 7D03 = FF IF REG1 = 25 GOTO 9 GOTO 8 9: LABEL 9 REG1 = 40 DPY-PRIZE SND. CONT=NEXT DPY-+ SND%1# A: LABEL A WRITE @ 7D05 = FF IF REG1 = 25 GOTO B GOTO A B: LABEL B REG1 = 40 DPY-DEAD SND. CONT=NEXT SND%1# C: LABEL C WRITE @ 7D80 = FF IF REG1 = 25 GOTO F GOTO C F: LABEL F REG1 = 40 DPY-SND TESTS COMPLETE. PRESS DPY-+ CONT%1# STOP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !I/O TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM TSTIO STOP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !DIP SWITCH TEST ! ! For the DIP Test I was imagining a All on & All off test ! Perhaps a on/off/on/off/on/off/on/off then reverse test would be better? ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM TSTDIP STOP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !PROBE TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM TSTPRB SYNC ADDRESS DPY-PLACE PROBE ON POINTS DPY-+ SHOWN.# STOP DPY-FLIP 5J-6.# STOP REGB = 1 REG9 = 7D82 REGB = 40 EXECUTE PROGRAM 65 STOP PROGRAM 65 116 BYTES READ PROBE REG1 = REGB 1: LABEL 1 IF REG8 = 0 GOTO 2 READ @ REG9 GOTO 3 2: LABEL 2 WRITE @ REG9 = REGA 3: LABEL 3 DEC REG1 IF REG1 > 0 GOTO 1 READ PROBE REG0 = REG0 AND 7F IF REG0 = REGB GOTO 4 DPY-+CNT BAD. GOTO 5 4: LABEL 4 DPY-+ OK. 5: LABEL 5 DPY-+COUNT @0=@B# STOP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !RUN UUT TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM TSTRUN DPY-RUNNING BOARD RUN UUT STOP
participants (2)
-
John Robertson -
Kev