Re: 9010A program problems....

From: John Robertson <jrr_at_flippers.com>
Date: Fri Mar 01 2002 - 22:09:57 EST

<x-html>
<html>
There is another flaw in the program you are working from. this
originally was the Asteroids.s file and in Program 20 the LABEL 1 appears
AFTER LABEL 2, and this can't work... I'm surprised it doesn't fail
there...<br><br>
For Asteroids LABEL 1 is the alternate ROM signatures, and thus it should
look like this:<br><br>
<font face="Courier New, Courier" size=4><b>PROGRAM 20&nbsp;&nbsp; 224
BYTES ! (I don't know if this is the right BYTE count...)<br><br>
0: LABEL 0<br>
&nbsp;&nbsp; DPY-ROM VERSION 1 OR 2 ? /1<br>
&nbsp;&nbsp; IF REG1 = 1 GOTO 1<br>
&nbsp;&nbsp; IF REG1 = 2 GOTO 2<br>
&nbsp;&nbsp; GOTO 0<br>
<i>1: LABEL 1<br>
&nbsp;&nbsp; DPY-TESTING ROM F1 - RV1 <br>
&nbsp;&nbsp; ROM TEST @ 6800-6FFF SIG ????<br>
&nbsp;&nbsp; DPY-TESTING ROM D-E1 - RV1<br>
&nbsp;&nbsp; ROM TEST @ 7000-77FF SIG ????<br>
&nbsp;&nbsp; DPY-TESTING ROM C1 - RV1<br>
&nbsp;&nbsp; ROM TEST @ 7800-7FFF SIG ????<br>
&nbsp;&nbsp; DPY-TESTING VECTOR ROM NP3 - RV1<br>
&nbsp;&nbsp; ROM TEST @ 5000-57FF SIG ????<br>
&nbsp;&nbsp; GOTO F<br>
</i>2: LABEL 2<br>
&nbsp;&nbsp; DPY-TESTING ROM F1 - RV2<br>
&nbsp;&nbsp; ROM TEST @ 6800-6FFF SIG ????<br>
&nbsp;&nbsp; DPY-TESTING ROM D E1 - RV2<br>
&nbsp;&nbsp; ROM TEST @ 7000-77FF SIG ????<br>
&nbsp;&nbsp; DPY-TESTING ROM C1 - RV2<br>
&nbsp;&nbsp; ROM TEST @ 7800-7FFF SIG ????<br>
&nbsp;&nbsp; DPY-TESTING VECTOR ROM NP3 - RV2<br>
&nbsp;&nbsp; ROM TEST @ 5000-57FF SIG ????<br>
&nbsp;&nbsp; GOTO F<br><br>
F: LABEL F<br>
&nbsp;&nbsp; DPY-ROM TEST COMPLETE<br>
&nbsp;&nbsp; STOP<br><br>
<br><br>
</b></font>At 12:02 PM 01/03/2002 -0500, Kev wrote:<br><br>
<blockquote type=cite class=cite cite>I still don't understand all the
finer points of programing using the RKSIC<br>
compiler &amp; labels.<br><br>
GOTOs only work within individual programs and EXECUTE (EX) is used to
jump<br>
to another program.<br><br>
Having said that, the following program will compile &amp; attempt to run
but it<br>
doesn't respond to Keyboard inputs other than beep.<br><br>
What did I miss?<br><br>
<br><br>
! *GAMENAME replace with current game name<br>
! *PROGRAMMER replace with current author name<br>
! *DATE replace with original program date<br>
! *MODDATE replace with revision date<br>
! *REVISION replace with revision number<br><br>
<br><br>
<br>
! Donkey Kong Jr Test Routine<br>
! Use in CPU Z80 processor socket<br>
! Program created by MOWERMAN<br>
! Program written on 2/28/02<br>
! Revision Date 2/28/02<br>
! Revision number 0<br>
!<br>
! UNABLE TO TEST SOUND PROCESSOR 8035<br>
! UNABLE TO TEST VID RAM 2P 2R<br>
! UNABLE TO TEST CHARACTER ROMS 3P 3N<br><br>
<br>
SETUP<br><br>
&nbsp;&nbsp; TRAP ACTIVE FORCE LINE NO<br>
&nbsp;&nbsp; TRAP ACTIVE INTERRUPT NO<br><br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br>
! MAIN LOOP ROUTINE<br><br>
! Proposed standard<br>
! 1 = RAM Test<br>
! 2 = ROM Test<br>
! 3 = SND Test<br>
! 4 = I/O Test<br>
! 5 = DIP Test<br>
! 6 = PROBE Test<br>
! 9 = Run UUT<br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br><br>
PROGRAM 0<br>
&nbsp;&nbsp; DPY-DONKEY KONG JR TST<br>
&nbsp;&nbsp; DPY-+-PRESS CONT<br>
&nbsp;&nbsp; STOP<br><br>
MAINLOOP:<br><br>
&nbsp;&nbsp; DPY- 1-RAM 2-ROM 3-SND 4-IO 5-DIP<br>
&nbsp;&nbsp; IF REG1 = 1 GOTO RAMTEST<br>
&nbsp;&nbsp; IF REG1 = 2 GOTO ROMTEST<br>
&nbsp;&nbsp; IF REG1 = 3 GOTO SNDTEST<br>
&nbsp;&nbsp; IF REG1 = 4 GOTO IOTEST<br>
&nbsp;&nbsp; IF REG1 = 5 GOTO DIPTEST<br>
&nbsp;&nbsp; IF REG1 = 6 GOTO PRBTEST<br>
&nbsp;&nbsp; IF REG1 = 9 GOTO RTEST<br>
&nbsp;&nbsp; GOTO MAINLOOP<br><br>
RAMTEST:<br>
&nbsp;&nbsp; EX RAMTST<br>
&nbsp;&nbsp; GOTO MAINLOOP<br>
ROMTEST:<br>
&nbsp;&nbsp; EX ROMTST<br>
&nbsp;&nbsp; GOTO MAINLOOP<br>
SNDTEST:<br>
&nbsp;&nbsp; EX SNDTST<br>
&nbsp;&nbsp; GOTO MAINLOOP<br>
IOTEST:<br>
&nbsp;&nbsp; EX IOTST<br>
&nbsp;&nbsp; GOTO MAINLOOP<br>
DIPTEST:<br>
&nbsp;&nbsp; EX DIPTST<br>
&nbsp;&nbsp; GOTO MAINLOOP<br>
PRBTEST:<br>
&nbsp;&nbsp; EX PRBTST<br>
&nbsp;&nbsp; GOTO MAINLOOP<br>
RTEST:<br>
&nbsp;&nbsp; EX RUNTST<br>
&nbsp;&nbsp; GOTO MAINLOOP<br><br>
<br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !RAM TEST<br><br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br><br>
PROGRAM RAMTST<br>
&nbsp;&nbsp; DPY-TESTING CPU RAM 3A 4A#<br>
&nbsp;&nbsp; RAM SHORT @ 6800-6BFF<br>
&nbsp;&nbsp; DPY-TESTING CPU RAM 3B 4B#<br>
&nbsp;&nbsp; RAM SHORT @ 6400-67FF<br>
&nbsp;&nbsp; DPY-TESTING CPU RAM 3C 4C#<br>
&nbsp;&nbsp; RAM SHORT @ 6000-63FF<br>
&nbsp;&nbsp; DPY-TESTING VID RAM 6R 6P#<br>
&nbsp;&nbsp; RAM SHORT @ 7000-77FF<br><br>
&nbsp;&nbsp; DPY-+-PRESS CONT#<br>
&nbsp;&nbsp; STOP<br><br>
<br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !ROM TEST<br><br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br><br>
PROGRAM ROMTST<br><br>
0: LABEL 0<br>
&nbsp;&nbsp; DPY-ROM VERSION 1 OR 2 ? /1<br>
&nbsp;&nbsp; IF REG1 = 1 GOTO 1<br>
&nbsp;&nbsp; IF REG1 = 2 GOTO 2<br>
&nbsp;&nbsp; GOTO 0<br>
2: LABEL 2<br><br>
! DONKEY KONG JR ROMS 5B/5C/5E F-2<br>
! NOTICE THESE ROMS ARE INTERLEAVED!<br>
!<br><br>
&nbsp;&nbsp; DPY-TESTING ROM 5B<br>
&nbsp;&nbsp; ROM TEST @ 0-FFF SIG 3F16<br>
&nbsp;&nbsp; ROM TEST @ 3000-3FFF SIG 4C8F<br>
&nbsp;&nbsp; DPY-TESTING ROM 5C<br>
&nbsp;&nbsp; ROM TEST @ 1000-17FF SIG AEDA<br>
&nbsp;&nbsp; ROM TEST @ 2000-27FF SIG 49FF<br>
&nbsp;&nbsp; ROM TEST @ 4800-4FFF SIG 3FB8<br>
&nbsp;&nbsp; ROM TEST @ 5800-5FFF SIG 734C<br>
&nbsp;&nbsp; DPY-TESTING ROM 5E<br>
&nbsp;&nbsp; ROM TEST @ 4000-47FF SIG 57D1<br>
&nbsp;&nbsp; ROM TEST @ 2800-2FFF SIG 2799<br>
&nbsp;&nbsp; ROM TEST @ 5000-57FF SIG 56BC<br>
&nbsp;&nbsp; ROM TEST @ 1800-1FFF SIG 8EEC<br><br>
&nbsp;&nbsp; GOTO F<br>
1: LABEL 1<br>
F: LABEL F<br>
&nbsp;&nbsp; DPY-ROM TEST COMPLETE<br>
&nbsp;&nbsp; STOP<br><br>
<br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !SND TEST<br><br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br><br>
PROGRAM SNDTST<br><br>
&nbsp;&nbsp; REG1 = 40<br>
&nbsp;&nbsp; DPY-Rivet SND. CONT=NEXT<br>
&nbsp;&nbsp; DPY-+ SND%1#<br>
0: LABEL 0<br>
&nbsp;&nbsp; WRITE @7C00 = 05<br>
&nbsp;&nbsp; IF REG1 = 25 GOTO 1<br>
&nbsp;&nbsp; GOTO 0<br>
1: LABEL 1<br>
&nbsp;&nbsp; REG1 = 40<br>
&nbsp;&nbsp; DPY-Springs SND. CONT=NEXT SND%1#<br>
2: LABEL 2<br>
&nbsp;&nbsp; WRITE @ 7C00 = 0A<br>
&nbsp;&nbsp; IF REG1 = 25 GOTO 3<br>
&nbsp;&nbsp; GOTO 2<br>
3: LABEL 3<br>
&nbsp;&nbsp; REG1 = 40<br>
&nbsp;&nbsp; DPY-JUMP SND. CONT=NEXT<br>
&nbsp;&nbsp; DPY-+ SND%1#<br>
4: LABEL 4<br>
&nbsp;&nbsp; WRITE @ 7D01 = FF<br>
&nbsp;&nbsp; IF REG1 = 25 GOTO 5<br>
&nbsp;&nbsp; GOTO 4<br>
5: LABEL 5<br>
&nbsp;&nbsp; REG1 = 40<br>
&nbsp;&nbsp; DPY-STOMP SND.CONT=NEXT<br>
&nbsp;&nbsp; DPY-+ SND%1#<br>
6: LABEL 6<br>
&nbsp;&nbsp; WRITE @ 7D02 = FF<br>
&nbsp;&nbsp; IF REG1 = 25 GOTO 7<br>
&nbsp;&nbsp; GOTO 6<br>
7: LABEL 7<br>
&nbsp;&nbsp; REG1 = 40<br>
&nbsp;&nbsp; DPY-COIN SND. CONT=<br>
&nbsp;&nbsp; DPY-+NEXT SND%1#<br>
8: LABEL 8<br>
&nbsp;&nbsp; WRITE @ 7D03 = FF<br>
&nbsp;&nbsp; IF REG1 = 25 GOTO 9<br>
&nbsp;&nbsp; GOTO 8<br>
9: LABEL 9<br>
&nbsp;&nbsp; REG1 = 40<br>
&nbsp;&nbsp; DPY-PRIZE SND. CONT=NEXT<br>
&nbsp;&nbsp; DPY-+ SND%1#<br>
A: LABEL A<br>
&nbsp;&nbsp; WRITE @ 7D05 = FF<br>
&nbsp;&nbsp; IF REG1 = 25 GOTO B<br>
&nbsp;&nbsp; GOTO A<br>
B: LABEL B<br>
&nbsp;&nbsp; REG1 = 40<br>
&nbsp;&nbsp; DPY-DEAD SND. CONT=NEXT SND%1#<br>
C: LABEL C<br>
&nbsp;&nbsp; WRITE @ 7D80 = FF<br>
&nbsp;&nbsp; IF REG1 = 25 GOTO F<br>
&nbsp;&nbsp; GOTO C<br>
F: LABEL F<br>
&nbsp;&nbsp; REG1 = 40<br>
&nbsp;&nbsp; DPY-SND TESTS COMPLETE. PRESS<br>
&nbsp;&nbsp; DPY-+ CONT%1#<br>
&nbsp;&nbsp; STOP<br><br>
<br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !I/O TEST<br><br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br><br>
PROGRAM IOTST<br>
&nbsp;&nbsp; STOP<br><br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !DIP SWITCH TEST<br>
!<br>
! For the DIP Test I was imagining a All on &amp; All off test<br>
! Perhaps a on/off/on/off/on/off/on/off then reverse test would be
better?<br>
!<br>
! Final setup should be factory settings?<br>
!<br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br><br>
PROGRAM DIPTST<br><br>
SWITCHLOOP:<br>
&nbsp;&nbsp; INC REGF<br>
&nbsp;&nbsp; INC REG2<br>
&nbsp;&nbsp; READ @REGF<br>
&nbsp;&nbsp; IF REGE AND 1 &gt;0 GOTO SW6KOFF<br>
&nbsp;&nbsp; GOTO SW6KON<br>
NEXTSW:<br>
&nbsp;&nbsp; IF REGE AND 2 &gt;0 GOTO SW6JOFF<br>
&nbsp;&nbsp; GOTO SW6JON<br>
ADDTEST:<br>
&nbsp;&nbsp; IF REGF &gt;6807 GOTO CONT<br>
&nbsp;&nbsp; GOTO SWITCHLOOP<br><br>
SW6KON:<br>
&nbsp;&nbsp; DPY-#<br>
&nbsp;&nbsp; DPY-6K NUMBER $2 ON<br>
&nbsp;&nbsp; STOP<br>
&nbsp;&nbsp; GOTO NEXTSW<br><br>
SW6JON:<br>
&nbsp;&nbsp; IF REGF=6807 GOTO CONT<br>
&nbsp;&nbsp; DPY-#<br>
&nbsp;&nbsp; DPY-6J NUMBER $2 ON<br>
&nbsp;&nbsp; STOP<br>
&nbsp;&nbsp; GOTO ADDTEST<br><br>
SW6KOFF:<br>
&nbsp;&nbsp; DPY-#<br>
&nbsp;&nbsp; DPY-6K NUMBER $2 OFF<br>
&nbsp;&nbsp; STOP<br>
&nbsp;&nbsp; GOTO NEXTSW<br><br>
SW6JOFF:<br>
&nbsp;&nbsp; IF REGF=6807 GOTO CONT<br>
&nbsp;&nbsp; DPY-#<br>
&nbsp;&nbsp; DPY-6J NUMBER $2 OFF<br>
&nbsp;&nbsp; STOP<br>
&nbsp;&nbsp; GOTO ADDTEST<br><br>
CONT:<br><br>
&nbsp; DPY-#<br>
&nbsp; DPY-DIP TEST COMPLETE<br>
&nbsp; STOP<br><br>
<br><br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !PROBE TEST<br><br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br><br>
PROGRAM PRBTST<br><br>
&nbsp;&nbsp; SYNC ADDRESS<br>
&nbsp;&nbsp; DPY-PLACE PROBE ON POINTS<br>
&nbsp;&nbsp; DPY-+ SHOWN.#<br>
&nbsp;&nbsp; STOP<br>
&nbsp;&nbsp; DPY-FLIP 5J-6.#<br>
&nbsp;&nbsp; STOP<br>
&nbsp;&nbsp; REGB = 1<br>
&nbsp;&nbsp; REG9 = 7D82<br>
&nbsp;&nbsp; REGB = 40<br>
&nbsp;&nbsp; EXECUTE PROGRAM 65<br>
&nbsp;&nbsp; STOP<br><br>
<br>
PROGRAM 65&nbsp;&nbsp; 116 BYTES<br><br>
&nbsp;&nbsp; READ PROBE<br>
&nbsp;&nbsp; REG1 = REGB<br>
1: LABEL 1<br>
&nbsp;&nbsp; IF REG8 = 0 GOTO 2<br>
&nbsp;&nbsp; READ @ REG9<br>
&nbsp;&nbsp; GOTO 3<br>
2: LABEL 2<br>
&nbsp;&nbsp; WRITE @ REG9 = REGA<br>
3: LABEL 3<br>
&nbsp;&nbsp; DEC REG1<br>
&nbsp;&nbsp; IF REG1 &gt; 0 GOTO 1<br>
&nbsp;&nbsp; READ PROBE<br>
&nbsp;&nbsp; REG0 = REG0 AND 7F<br>
&nbsp;&nbsp; IF REG0 = REGB GOTO 4<br>
&nbsp;&nbsp; DPY-+CNT BAD.<br>
&nbsp;&nbsp; GOTO 5<br>
4: LABEL 4<br>
&nbsp;&nbsp; DPY-+ OK.<br>
5: LABEL 5<br>
&nbsp;&nbsp; DPY-+COUNT @0=@B#<br>
&nbsp;&nbsp; STOP<br><br>
<br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !RUN UUT TEST<br><br>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
!<br><br>
PROGRAM RUNTST<br>
&nbsp;&nbsp; DPY-RUNNING BOARD<br>
&nbsp;&nbsp; RUN UUT<br>
&nbsp;&nbsp; STOP</blockquote></html>

</x-html>
Received on Fri Mar 01 20:04:24 2002

This archive was generated by hypermail 2.1.8 : Tue Dec 02 2003 - 18:40:41 EST