On 12/11/2010 03:15 AM, terry stewart wrote:
Ok, an examination of the comments in the ROM H
listing suggests that
the Lisa 2/10 does look to see if the hard drive is connected and if
not, then boots from the floppy drive. As the machine still gives an
error number 57 on the I/O board when the widget is unplugged but the
floppy drive plugged in, I deduce the fault is definitely is on the
main I/O board somewhere.
With the widget unplugged then I took some readings on the floppy
drive card edge and compared those to the same on the working Lisa.
There were some differences. Compared to the working machine..
PH0 does not show a brief 5V pulse on start up
PH1 and PH2 remain at zero rather than pulsing briefly to 3.5 v or so
every 4-5 seconds
HDS is static at zero rather than at 4.5v and dropping to zero every
4-5 seconds
DEN (ENBL) is 5v rather than zero
WRD is 5v rather than zero
PWM is 0 rather than 4v
The WRD and the PH lines come off the IWM chip (Integrated WOZ
machine). I found a few docs on this chip but I'll need to study them
a little harder to try to understand how they work. Checking out the
IMW chip, a clock signal is there and nothing on the input side is
obviously amiss but then I would not recognise it if it was. The data
and address lines are a combination of exotic looking waves. The same
can be said of the data and address lines in the 6504a disk controller
chip itself although A8 (pin 13) seemed to be a steady 3.8V rather
than a wave.
I checked quite a few of the other 71xxxx chips. They appear to be
doing what they should on the straight signal. With a wave, it's hard
to tell.
I'm wondering if it is the IMW IC. Does this seem a strong suspect?
I don't have a replacement for this unfortunately, but they are also
in the Apple IIGS apparently, so not that uncommon.
But if you had a working IIGS would you sacrifice its IWM? :-)
I know you've said you're sure the I/O ROM says E8, does the sticker on
the I/O board confirm this? It's very suspect to me.
Also can you confirm that the floppy drive in that Lisa is a standard
sony 400K one? If you take it apart, do you see only one head, and the
top part of the clamp has a bit of foam?
If that ROM is ok, it might well be the 800K ROM from SunRem. I'm
guessing that it's either that, or it's corrupt. If either of those
cases is wrong, well, you might have a new ROM that wasn't unreleased.
Again, you're getting error 57, which is a timeout of the controller's
self test, or a bus error during an attempt to access the controller.
This has nothing to do with access to the floppy drive, but everything
to do with the power on self test that 68000 does to check the 6504 is
working.
Unless the IWM caused the 6504 to crash, it shouldn't cause a bus error
or timeout when the 68000 tries to get status from the 6504. If on
poweron the 6504 is fully functional, it does a self test also. Then,
it writes the results into the shared floppy RAM, and the 68000 reads
this status. Unfortunately, in all cases, you get the same error 57.
It might be a timeout, bus error, or an internal 6504 failure, or a RAM
failure.
The only clue we have is the oddball I/O ROM version. Please, check the
sticker on the I/O ROM. If it says 88 on the label, either the EPROM
went bad, or the I/O RAM is bad, or something went wrong that prevented
the 6504 from reporting its version to the 68000. Does the sticker say
E8 on it? Is there an Apple symbol on the sticker?
Here's what the code looks like, all roads lead to 57 (EDISK)
unfortunately, so we can't pinpoint exactly what went wrong. If you
have a logic analyzer with the ability to analyze running 68000 code,
and can catch the POST ROM going through this code, you might be able to
see where it dies.
Perhaps if you can enter Service Mode, you could look at 02AE which is a
copy of the result of the 6504's self test. If this is non-zero, it's
what reported the error. 02A1 is a copy of the ROM version, which
should contain E8.
If you can jump into the diag ROM at 00fe1136, it should attempt to see
if it can talk to the floppy controller, if you get an error 57
immediately after this (the Lisa might crash without throwing an error,
since your're jumping into POST code from service mode) then it's a timeout.
110C|
;----------------------------------------------------------------------------
110C| ; Test of disk interface - ensure R/W
capability to shared RAM, then
110C| ; try disable interrupts command. This
test will also verify
110C| ; the results of the disk controller's own
self-test (ROM and RAM test).
110C|
;----------------------------------------------------------------------------
110C|
110C| DSKTST
110C| .IF DIAGS = 1
110C|
110C| 47FA 0078 LEA DSKVCT,A3 ;set up
vector in case of bus timeout
1110| 21CB 0008 MOVE.L A3,BUSVCTR
1114| 207C 00FC C001 MOVE.L #DISKMEM,A0 ;set ptr for
shared memory
111A|
111A| ; Display ROM
id CHG001
111A|
111A| 7A03 MOVEQ #ROMIDROW,D5 ;set cursor
ptrs CHG001
111C| 3C3C 0051 MOVE #ROMIDCOL+1,D6
; CHG001
1120| 702F MOVEQ #'/',D0 ;preceed
with / char CHG001
1122| 6100 2616 BSR DSPVAL ;display
it CHG001
1126| 1028 0030 MOVE.B ROMV(A0),D0 ;read
id CHG001
112A| 11C0 02A1 MOVE.B D0,IOROM ;save in low
memory CHG010
112E| 7202 MOVEQ #2,D1
; CHG001
1130| 6100 0546 BSR OUTCH
; CHG001
1134|
1134| ; Read system
type CHG009
1134|
1134| 6162 BSR.S SETTYPE ;determine
system type CHG029
1136|
1136| ; Check disk alive indicator
1136|
1136| 4282 CLR.L D2 ;clear for
use CHG022
1138| 227C 00FC D901 MOVE.L #VIA2BASE,A1 ;set ptr to
parallel port 6522
113E| 0229 00BF 0010 ANDI.B #$BF,DDRB2(A1) ;ensure bit
6 is input
1144| 203C 001C 8000 MOVE.L #DSKTMOUT,D0 ;set up
timeout count for 15 secs
114A| 0811 0006 @2 BTST #DSKDIAG,IRB2(A1) ;check
indicator
114E| 6606 BNE.S @3 ;skip if set
1150| 5380 SUBQ.L #1,D0 ;else loop
until timeout (about 8 us per loop)
1152| 66F6 BNE.S @2
1154| 7439 MOVEQ #EDISK,D2 ;error if
not set CHG022
1156|
1156| ; Try read operation and check results of
self-test
1156|
1156| @3
1156| .IF DIAGS = 1
1156| 11E8 0016 02AE MOVE.B STST(A0),DSKRSLT ;get
results of disk self-test CHG022
115C| 6616 BNE.S INTERR ;exit if
error CHG022
115E|
115E| 4A02 @4 TST.B D2 ;previous
error? CHG022
1160| 6612 BNE.S INTERR ;exit if
yes CHG022
1162|
1162| ; Then try simple write operation to shared RAM
1162|
1162| 7055 MOVEQ #$55,D0 ;set up
pattern RM000
1164| 1140 0002 MOVE.B D0,CMD(A0) ;try write
1168| B028 0002 CMP.B CMD(A0),D0 ;verify
116C| 6606 BNE.S INTERR ;exit if error
116E|
116E| ; Finally try a command to disable interrupts
116E|
116E| 6100 0BD6 BSR DSABLDSK ;go issue
disable cmd
1172| 640C BCC.S DSKXIT ;skip if OK
1174| .ELSE
1174| .ENDC
1174|
1174| 08C7 0011 INTERR BSET #DISK,D7 ;else set
disk error
1178| 4A87 TST.L D7 ;restart if
in loop mode
117A| 6B90 BMI.S DSKTST
117C| 6000 021C BRA TSTCHK ;and abort
further testing
If you suspect that no keyboard isn't working, and your 6522's and the
COP421 chips are all socketed, feel free to swap them around, or swap
them from the other Lisa. 6522's are very common. Western Design
Center may even sell new ones. see:
http://www.westerndesigncenter.com/wdc/AN-004_W65C22S_Replacements.cfm
and find the right version.
Take extra care with the COP421 chip! COP421's are unique to the Lisa
and can only be found on Lisa I/O boards. (COP421's from anything other
than a Lisa will not work since these are microcontrollers with a bit of
EPROM built in and burned in for Lisas, so only those coming from a Lisa
can be used.)
The COP421 handles keyboard, mouse, and the real time clock. The year
on the clock has only a 15 year span. So Lisas never had a Y2K problem.
:-) Their clock range expired long before 2000, I forget the exact
limit, but it's probably 1994 or 1995.
One of the VIA 6522s handles the keyboard (and volume + sound control),
the other the parallel port (contrast + widget). Swapping the two VIA's
around on the same I/O board is helpful in determining if a VIA is bad.
If both VIA's are good a known working keyboard doesn't work with your
2/10, this is what you'd check on the I/O board.
The Lisa actually has 3 CPU's. A 68000, a 6504, a COP421, and in the
first prototypes, they also had a COP421 in the keyboard. These were
later replaced with an intel chip. The Lisa 2's (not 2/10's) also had a
socket for an FPU.