Someone's been busy!
You don't need the line INCLUDE Z80.POD until we figure out the Z80QT, as
that activates the features as far as I know...Add a
!DATE LAST MODIFIED
at the top, you loose sight of which edits work otherwise, the switch
test in the GALAGA script works fine by the way, clip and edit it...plus
you need to create some error message routines. The examples, again in
Galaga.s work as a good template.
I was going to get a student to type in the Guided Fault programs in the
next week or two...That is also a template for building programs. Does
everyone know what I am talking about or do I need to scan in another
book? The title is:
Application Information B0138 How to Use the 9010A for Guided Fault
Isolation.
I suspect it needs to be scanned in...20 pages. Unfortunately my text
recognition software (ISIS) can't figure out the Dot Matrix type that was
used for the program listing...
John:-#)#
At 08:14 AM 28/02/2002 -0500, Kev wrote:
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