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