I still don't understand all the finer points of programing using the RKSIC compiler & labels. GOTOs only work within individual programs and EXECUTE (EX) is used to jump to another program. Having said that, the following program will compile & attempt to run but it doesn't respond to Keyboard inputs other than beep. What did I miss? ! *GAMENAME replace with current game name ! *PROGRAMMER replace with current author name ! *DATE replace with original program date ! *MODDATE replace with revision date ! *REVISION replace with revision number ! Donkey Kong Jr Test Routine ! Use in CPU Z80 processor socket ! Program created by MOWERMAN ! Program written on 2/28/02 ! Revision Date 2/28/02 ! Revision number 0 ! ! UNABLE TO TEST SOUND PROCESSOR 8035 ! UNABLE TO TEST VID RAM 2P 2R ! UNABLE TO TEST CHARACTER ROMS 3P 3N 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 ! 9 = Run UUT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM 0 DPY-DONKEY KONG JR TST DPY-+-PRESS CONT STOP MAINLOOP: DPY- 1-RAM 2-ROM 3-SND 4-IO 5-DIP IF REG1 = 1 GOTO RAMTEST IF REG1 = 2 GOTO ROMTEST IF REG1 = 3 GOTO SNDTEST IF REG1 = 4 GOTO IOTEST IF REG1 = 5 GOTO DIPTEST IF REG1 = 6 GOTO PRBTEST IF REG1 = 9 GOTO RTEST GOTO MAINLOOP RAMTEST: EX RAMTST GOTO MAINLOOP ROMTEST: EX ROMTST GOTO MAINLOOP SNDTEST: EX SNDTST GOTO MAINLOOP IOTEST: EX IOTST GOTO MAINLOOP DIPTEST: EX DIPTST GOTO MAINLOOP PRBTEST: EX PRBTST GOTO MAINLOOP RTEST: EX RUNTST GOTO MAINLOOP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !RAM TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM RAMTST DPY-TESTING CPU RAM 3A 4A# RAM SHORT @ 6800-6BFF DPY-TESTING CPU RAM 3B 4B# RAM SHORT @ 6400-67FF DPY-TESTING CPU RAM 3C 4C# RAM SHORT @ 6000-63FF DPY-TESTING VID RAM 6R 6P# RAM SHORT @ 7000-77FF DPY-+-PRESS CONT# STOP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !ROM TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM ROMTST 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 ! DONKEY KONG JR ROMS 5B/5C/5E F-2 ! NOTICE THESE ROMS ARE INTERLEAVED! ! DPY-TESTING ROM 5B ROM TEST @ 0-FFF SIG 3F16 ROM TEST @ 3000-3FFF SIG 4C8F DPY-TESTING ROM 5C ROM TEST @ 1000-17FF SIG AEDA ROM TEST @ 2000-27FF SIG 49FF ROM TEST @ 4800-4FFF SIG 3FB8 ROM TEST @ 5800-5FFF SIG 734C DPY-TESTING ROM 5E ROM TEST @ 4000-47FF SIG 57D1 ROM TEST @ 2800-2FFF SIG 2799 ROM TEST @ 5000-57FF SIG 56BC ROM TEST @ 1800-1FFF SIG 8EEC GOTO F 1: LABEL 1 F: LABEL F DPY-ROM TEST COMPLETE STOP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !SND TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM SNDTST 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 IOTST 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? ! ! Final setup should be factory settings? ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM DIPTST SWITCHLOOP: INC REGF INC REG2 READ @REGF IF REGE AND 1 >0 GOTO SW6KOFF GOTO SW6KON NEXTSW: IF REGE AND 2 >0 GOTO SW6JOFF GOTO SW6JON ADDTEST: IF REGF >6807 GOTO CONT GOTO SWITCHLOOP SW6KON: DPY-# DPY-6K NUMBER $2 ON STOP GOTO NEXTSW SW6JON: IF REGF=6807 GOTO CONT DPY-# DPY-6J NUMBER $2 ON STOP GOTO ADDTEST SW6KOFF: DPY-# DPY-6K NUMBER $2 OFF STOP GOTO NEXTSW SW6JOFF: IF REGF=6807 GOTO CONT DPY-# DPY-6J NUMBER $2 OFF STOP GOTO ADDTEST CONT: DPY-# DPY-DIP TEST COMPLETE STOP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !PROBE TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAM PRBTST 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 RUNTST DPY-RUNNING BOARD RUN UUT STOP