TITLE LOGICAN.MAC 08-09-84 21:55:00 .Z80 ASEG ORG 100H ; ; THIS PROGRAM USES THE PARALLEL PRINTER PORT ; OF THE MICRO MATE TO MAKE A PARALLEL LOGIC ; ANALYZER. THE MICRO MATE ONLY HAS 4 STATUS BITS ; TO WORK WITH, TO USE ALL 8 YOU WILL HAVE TO ; PROVIDE HARDWARE CONNECTED TO THE INTERNAL ; CONNECTOR J4. ; JP LOOP1 ; PROMPT USER STARTO: LD DE,MEMEND LD HL,MEMST LD C,8FH ; HARDWARE ADD OF IO PORT DI ; KEEP TIME LOOP CORRECT LOOP: INI ; 16 PUSH HL ; 11 XOR A ; 4 SBC HL,DE ; 15 CK FOR END POP HL ; 10 JP NZ,NORST ; 10 LD HL,MEMST ; 10 NORST: IN A,(8AH) ; CON STAT BIT 0,A JP NZ,USER ; TO COMMAND LINE ; SMCODE: LD B,1 DLOOP: NOP DEC B JR NZ,DLOOP ; NOP NOP JP LOOP USER: PUSH HL ; SAVE PTR CALL PRINT DB 'POINTER ADDRESS ',0 POP HL PUSH HL LD A,H CALL PRHEX POP HL LD A,L CALL PRHEX CALL PRINT NOP LOOP1: ; GET INPUT FROM USER ; START OVER OR DUMP CALL PRINT DB 'DUMP FROM-FOR or RESTART ' DB 'or SET SAMPLE TIME (in 5uS units)' DB 0DH,0AH,'MIN = 30uS or ANALYZE ',0 CALL INBUF CP 'R' JP Z,STARTO ; RESTART CP 'S' JR Z,SET CP 'A' ; ANALYZE JP Z,ANA CP 'D' JR NZ,LOOP1 ; WRONG ANS CALL NLDHL ; GET START ADDRESS JR C,LOOP1 ; ERROR PUSH HL CALL LDPHL ; GET HOW LONG JR C,LOOP1 EX DE,HL POP HL LD C,0 CALL DUMPA JR LOOP1 ; SET: CALL FFDEC ; GET CLOCK SPEED JP C,LOOP1 ; WRONG CP 6 ; MIN JP C,LOOP1 ; TOO LOW SUB 5 ; 1 = 30 us LD (SMCODE+1),A CALL PRINT DB 'CLOCK TIME NOW SET',0DH,0AH,0 JP LOOP1 ; ANA: CALL NLDHL ; START ADD JP C,LOOP1 ; WRONG LD C,0 ; START COUNT LD D,22 ; LINES PER SCREEN LD A,(HL) ; START WITH GOOD CMP AND 30H LD B,A ; CLOOP: INC C ; COUNTER JR NZ,NOTFF DEC C NOTFF: ; PRINT FF FOR LONG TIME LD A,(HL) INC HL AND 30H ; ONLY 2 BITS THIS TIME CP B JP Z,CLOOP ; PUSH DE PUSH HL PUSH AF PUSH BC PUSH HL ; CALL PRINT DB 'ADD DATA CNT ',0 POP HL CALL PRRP ; PRINT REG PAIR LD E,' ' LD C,2 CALL 5 POP BC PUSH BC LD A,B CALL PRHEX LD E,' ' LD C,2 CALL 5 POP BC LD A,C CALL PRHEX POP AF LD B,A LD C,0 POP HL POP DE DEC D JP NZ,CLOOP ; PUSH HL PUSH BC CALL PRINT ; STOP AT 22 LINES DB 'CONTINUE or X ',0 CALL INBUF CP 'X' POP BC POP HL JP Z,LOOP1 ; RESET LD D,22 LD C,0 JP CLOOP ; PRRP: ; PRINT REG PAIR IN HEX PUSH HL LD A,H CALL PRHEX POP HL LD A,L ; FALL THRU TO PRHEX PRHEX: CALL M_HEX PUSH DE LD E,D LD C,2 CALL 5 POP DE LD C,2 JP 5 ; EXTERNAL PRINT EXTERNAL M_HEX EXTERNAL INBUF EXTERNAL FFDEC EXTERNAL NLDHL EXTERNAL LDPHL EXTERNAL DUMPA MEMEND EQU 0F3FFH MEMST EQU 00800H ; END