Ah, NMI is part of the WatchDog RESET for the 9010. If the Keyboard
Strobe isn't clearing U31 every few ms, then U31 RESETs the peripherals,
and sends NMI (0066h) to the CPU.
Fluke 9010A Memory locations for various functions.
ROM 0000-BFFF
RAM C000-FFFF
(1)0000h I/O-0 00 Read Fuse Blown & Event counter (Read)
(1)0020h I/O-1 Reset Sig generator and event counter (write any
data)
(1)0040h I/O-2 Reads Low byte of the Probe Signature (Read)
(1)0060h I/O-3 Reads High byte of the Probe Signature (Read)
(1)0080h-(1)0081h I/O-4 Keyboard/Watchdog Clear (W/R)
(1)00A0h-(1)00A1h I/O-5 Mag Tape
(1)00C0h-(1)00C3h I/O-6 Pod/Probe I/O
(1)00E0h-(1)00E1h I/O-7 RS-232
Update to loop below...
John :-#)#
At 12:41 AM 22/05/2002 -0700, TechToolsList@flippers.com wrote:
Another tidbit, the 'Waiting for Key Press' loop also checks if the Probe FUSE is blown. But it doesn't seem to trip the NMI (0066h) while still strobing the keyboard I/O. Need to dig further...
John :-#)#
At 11:39 PM 21/05/2002 -0700, John Robertson wrote:
Well, I was working on the code for the 9010 and came up with an idea, why not log what happens with a single read. So now I'm getting info on the memory locations. for example it turns out that the display uses memory locations: F577h to F596h (32 characters):
Fluke 9010A Memory locations for various functions.
ROM
U21 Display Ram DATA
85A4h F577h 1st position for display R (52)
85A5h F578h 2nd position display E (45)
85A6h F579h 3rdA (41)
85A7h F57Ah 4thD (44)
85A8h F57Bh 5th(space - 20)
85A9h F57Ch 6th@ (40)
85AAh F57Dh 7th(space - 20)
The data byte (location of read) is now read from U21 starting at 8623h
in reverse order.
I'll get more out as I figure it out...it seems that locations F345h and F346h are the Signature data locations...(thanks David F)
FF95h - Position pointer for display (incremented by 1 for every character added above)
-------------------------------------------------------------------------
This is the wait cycle of the 9010 when nothing is happening:
STATE PC DISASSEMBLY BUS ACTIVITY
(start or at least what I call the start - it's an endless loop...)
00489 76D0 JR Z,7707-$
00491 7707 LD C,00
00493 7709 JP BE84
00496 BE84 LD IX,SP
00498 BE86 POP IX FF53>60 FF54>FF
00502 BE88 POP HL FF55>B0 FF56>73
00505 BE89 POP AF FF57>52 FF58>73
00508 BE8A JP (HL)
00509 73B0 LD A,C
00510 73B1 OR A
00511 73B2 JR NZ,73E5-$
00513 73B4 JR 73AA-$
00515 73AA LD L,(IX+04) FF64>52
00519 73AD CALL 767C FF58<73 FF57<B0
00524 767C RST 20H FF56<76 FF55<7D
00527 0020 JP BE77
00530 BE77 POP DE FF55>7D FF56>76
00533 BE78 EX (SP),HL FF57>B0 FF58>73
FF58<73 FF57<52
00538 BE79 PUSH HL FF56<73 FF55<B0
00541 BE7A PUSH IX FF54<FF FF53<60
00545 BE7C LD IX,0000
00549 BE80 ADD IX,SP
00551 BE82 EX DE,HL
00552 BE83 JP (HL)
00553 767D LD HL,FFC7
00556 7680 ADD HL,SP
00557 7681 LD SP,HL
00562 7685 CP 7F
00564 7687 JR Z,768E-$
00566 768E LD L,00
00568 7690 CALL BA5C FF19<76 FF18<93
00573 BA5C LD C,L
00574 BA5D IN C,(C) 00>80 (Has the Fuse Blown - 08h if fuse open)
00577 BA5F LD B,00
00579 BA61 RET FF18>93 FF19>76
00582 7693 LD A,C
00583 7694 AND 80
00585 7696 LD C,A
00586 7697 JR NZ,76C9-$
00588 76C9 LD L,81
00590 76CB CALL BA5C FF19<76 FF18<CE
00595 BA5C LD C,L
00596 BA5D IN C,(C) 81>08 (Keyboard Entry Flag)
00599 BA5F LD B,00
00601 BA61 RET FF18>CE FF19>76
00604 76CE BIT 00,C
(repeat from the top - 00489)
Well, I'm getting tired...not a Z80 guru by a long shot.
John :-#)#