Christian,
Rectangular blocks. When I switch to a register display I get readable
characters, so I made an assumption (maybe incorrectly) that the
graphics adapter is functioning. How can I validate that the correct
cards are in the correct slots? This machine has passed through
multiple hands before me and there's no guarantee
that the cards are in the correct slots, or even if the correct cards
are present.
I will check that the correct information looks like what you show here.
Ellis
On Mon, Nov 11, 2013 at 4:58 AM, Christian Corti
<cc at informatik.uni-stuttgart.de> wrote:
On Sun, 10 Nov 2013, Ellis Holman wrote:
I have managed to acquire an IBM 5110 Model 2. The machine immediately
process checks on start-up and shows square blocks on the display.
I've opened the machine up and re-seated all of the cards, but with no
change in behavior. Anyone have some wisdom for me on the 5110?
Square blocks or rectangular blocks? I suppose the latter. That would mean
that everything read from memory is X'FF. Another possibility would be a
screen full with the double-zero character (X'00). This is not good, but
would probably mean that either the first memory bank is malfunctioning, or
the graphics adapter (which does cycle stealing). What do you see if you
switch from normal to register display?
Here's a checklist for troubleshooting:
- open the case
- put the internal switch right to the monitor from RUN to HALT
- power-on the machine
- check the display
You should see the first 1024 bytes (64x16) from the Executable ROS (in
normal display mode) or the first 512 bytes as hex values in register mode.
Until now, the processor hasn't executed a single instruction.
The registers are memory-mapped but on the processor board instead of being
located in RWS. So even if the memory (RWS or ROS) is faulty or missing
(X'FF would be such an indication) the registers should be displayed
(register mode). They are located from 0000-001F for level 0, 0020-003F for
level 1, 0040-005F for level 2 and 0060-007F for level 3.
Oh, BTW, are you sure that you have all cards and that they are in the
correct slots?
For reference, here's the disassembly of the beginning of the Executable
ROS; you should see the hex dump on the screen after the procedure above
(start address is 000A!)
; **********************************************************************
; *** BEGIN OF ROS PART 1
; **********************************************************************
0000 000A DW $000A ; R0L0
0002 0000 DW $0000 ; R1L0
; ----------------------------------------------------------------------
0004 2868 MOVE R8, $D0
0006 12BF CTRL $2, #$BF ; switch to meta-interpreter
0008 2056 JMP ($00AC)
; ----------------------------------------------------------------------
; Clear all memory
; (Memory parity check seems to be disabled)
; This will also clear all registers from R4L0
; to R15L3!
000A 1FFF CTRL $F, #$FF ; Reset all devices
000C 0204 MOVE R2, R0
000E 8208 LBI R2, #$08 ; R2 <- $0008
0010 0324 MOVE R3, R2
0012 8300 LBI R3, #$00 ; R3 <- $0000
0014 5321 MOVE (R2)+, R3
0016 012C MHL R1, R2
0018 0126 OR R1, R2
001A C103 SZ R1
001C F009 BRA $0014 ; Loop
; Size installed memory in increments of 8 kbytes
001E 8F1F LBI R15, #$1F
0020 0FFD MLH R15, R15
0022 8FFF LBI R15, #$FF ; start with last address
$1FFF
; If there is no memory at the location pointed
; to by R15, a read will return $FF instead of $00
0024 61F8 MOVB R1, (R15)
0026 C10C SNS R1
0028 A00D BRA $0038 ; no memory here
; Next memory location (increment by $2000)
002A 05F4 MOVE R5, R15
002C 01FC MHL R1, R15
002E A11F ADD R1, #$20
0030 0F1D MLH R15, R1
0032 81FF LBI R1, #$FF
0034 C517 SBSH R5, R1 ; done
0036 F013 BRA $0024 ; Loop
0038 10FB CTRL $0, #$FB ; Toggle level 0
003A 1FFF CTRL $F, #$FF ; Reset all devices
; Put $FFFF (halt code) in R7L0
; R7 remains unaltered during bring up diagnostic
003C 0771 DEC R7, R7 ; R7 <- $FFFF
; Test RWS locations $0020-$05FF
003E 8420 LBI R4, #$20 ; R4 <- $0020 (start
address)
0040 8606 LBI R6, #$06 ; R6 <- $0006 (high end
address)
0042 8104 LBI R1, #$04
0044 011D MLH R1, R1
0046 81C4 LBI R1, #$C4
0048 0203 INC2 R2, R0
004A 0014 RET R1 ; test memory (call $04C4)
Christian