Fixing a Superbrain up

Talk about non-Acorn classic computers/hardware/software here (including retro consoles)
User avatar
hoglet
Posts: 6604
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Fixing a Superbrain up

Postby hoglet » Fri May 12, 2017 1:51 pm

(post two above edited slightly)

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Fri May 12, 2017 1:51 pm

I think our posts have crossed.. I found a stuck gate that helps generate the /CS for the 2114.. and the 2114 /CS pulses unexpectedly when accessing the ROM.

User avatar
hoglet
Posts: 6604
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Fixing a Superbrain up

Postby hoglet » Fri May 12, 2017 1:53 pm

jonb wrote:I think our posts have crossed.. I found a stuck gate that helps generate the /CS for the 2114.. and the 2114 /CS pulses unexpectedly when accessing the ROM.

Excellent!

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Fri May 12, 2017 2:08 pm

I think the LS04 replacement has improved matters. I now get a proper ROM detect (so it is returning consistent values now) and there is something on the display.

IMG_3986.JPG
Screen is back up!


See the little square? It's the cursor. The line of garbage indicates that CPU1 is generating the display. When you stop the CPU, it disappears, then returns when you resume. This is all as normal. So I am now wondering why the line of squares. Possibly the character chip or its logic...

..also, I want to attempt to refit the keyboard encoder. If it breaks the bus again, I'll know it is faulty. But I wonder what will happen if I fit a floppy drive to it and insert a boot disk...
Last edited by jonb on Fri May 12, 2017 2:12 pm, edited 1 time in total.

User avatar
1024MAK
Posts: 6782
Joined: Mon Apr 18, 2011 4:46 pm
Location: Looking forward to summer in Somerset, UK...

Re: Fixing a Superbrain up

Postby 1024MAK » Fri May 12, 2017 2:09 pm

That's good news :D

Mark
For a "Complete BBC Games Archive" visit www.bbcmicro.co.uk NOW!
BeebWiki‬ - for answers to many questions...

User avatar
hoglet
Posts: 6604
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Fixing a Superbrain up

Postby hoglet » Fri May 12, 2017 2:15 pm

Progress then!

It would be good to confirm the ICE can now accurately dump the ROM.

And also, see how far it seems to be getting through the ROM.

Dave

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Fri May 12, 2017 2:25 pm

Running out of time...

Connected a floppy to it but it's not booting. May be because the ACT ROM is asking for a key before proceeding, but I have no keyboard encoder. I tried the standard 3.1 ROM but it is set for 60 Hz so lots of flickering on the screen and no boot.

So, still lots to investigate.

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Fri May 12, 2017 2:28 pm

hoglet wrote:Progress then!

It would be good to confirm the ICE can now accurately dump the ROM.

And also, see how far it seems to be getting through the ROM.

Dave


Dave, it looks OK. 3.1 INSERT DISKETTE INTO DRIVE message is a dead giveaway.

Code: Select all

0000   3A 00 88 FE 55 C2 13 00-3A 01 88 FE AA C2 13 00    :...U...:.......
0010   C3 21 00 21 00 04 11 00-C0 01 00 04 ED B0 C3 06    .!.!............
0020   C0 31 FF 8B 3E 00 32 00-88 32 01 88 32 07 88 32    .1..>.2..2..2..2
0030   06 88 D3 10 3A 2F 00 D3-08 3E 00 32 0C 8A 31 FF    ....:/...>.2..1.
0040   8B 3A 07 88 B7 CA 41 00-3E 2F D3 08 AF 32 07 88    .:....A.>/...2..
0050   32 0B 8A 3A 03 88 E6 03-47 04 3E 02 05 CA 64 00    2..:....G.>...d.
0060   07 C3 5C 00 E6 1E 32 03-88 3A 05 88 2F DE 23 FA    ..\...2..:../.#.
0070   7E 00 2F 32 05 88 3A 03-88 F6 20 32 03 88 3A 03    ../2..:... 2..:.
0080   88 F6 01 D3 10 3A 02 88-FE 05 CA A2 02 FE 04 CA    .....:..........
0090   BC 02 FE 01 CA EB 00 F2-F2 00 21 05 00 22 0D 8A    ..........!.."..
00A0   3A 03 88 E6 1E 32 06 88-CD C8 00 B7 E6 1C EE 04    :....2..........
00B0   32 0B 8A CA 2A 02 21 0D-8A 7E B7 CA 22 02 35 CD    2...*.!.....".5.
00C0   AA 03 CD AA 03 C3 A0 00-3A 02 88 B7 F2 D4 00 3E    ........:......>
00D0   F0 C3 D6 00 3E F4 D3 08-CD B0 02 CD B0 02 CD B0    ....>...........
00E0   02 CD B0 02 00 00 00 CD-7C 02 C9 97 21 19 00 C3    ............!...
00F0   F7 00 3E 01 21 00 05 22-08 8A 32 0A 8A 3A 06 88    ..>.!.."..2..:..
0100   57 3A 03 88 E6 1E BA CA-34 01 3A 03 88 E6 1E 32    W:......4.:....2
0110   06 88 CD 3B 02 CA 2D 01-CD B9 03 CD 3B 02 CA 2D    ...;..-.....;..-
0120   01 CD C8 00 CD 3B 02 CA-2D 01 C3 22 02 DB 0A D3    .....;..-.."....
0130   09 CD C8 03 2A 04 88 4D-DB 09 BC CA 60 01 7C D3    ....*..M....`...
0140   0B CD C8 03 3E E4 D3 08-CD B0 02 CD B0 02 CD B0    ....>...........
0150   02 CD B0 02 00 00 00 00-00 00 CD 7C 02 C3 12 01    ................
0160   79 D3 0A CD C8 03 21 08-88 3A 0A 8A B7 C2 A5 01    y.....!..:......
0170   3E 77 D3 08 CD C8 03 3A-02 88 D6 02 FA 87 01 CD    >w.....:........
0180   91 01 DB 0B C3 7F 01 CD-91 01 DB 0B 77 23 C3 87    ............w#..
0190   01 DB 08 1F 1F D0 17 D2-91 01 3A 0C 8A B7 C2 A8    ..........:.....
01A0   03 E1 C3 BD 01 FE 03 3E-57 C2 AE 01 3E 50 D3 08    .......>W...>P..
01B0   CD C8 03 CD 91 01 7E D3-0B 23 C3 B3 01 0E 7C 3A    .........#.....:
01C0   0A 8A B7 C2 C8 01 0E 1C-CD 7C 02 A1 32 0B 8A CA    ............2...
01D0   00 02 21 08 8A 3A 0A 8A-B7 CA E4 01 23 35 CA 22    ..!..:......#5."
01E0   02 C3 FD 00 35 C2 FD 00-3A 02 88 FE 01 C2 F3 01    ....5...:.......
01F0   C3 22 02 23 35 CA 22 02-3E 01 32 0A 8A C3 FD 00    .".#5.".>.2.....
0200   3A 02 88 FE 06 CA 2A 02-B7 DE 02 FA 2A 02 21 0A    :.....*.....*.!.
0210   8A 97 BE CA 2A 02 77 3E-0A 32 08 8A 3A 04 88 C3    ....*.w>.2..:...
0220   61 01 3A 0B 8A F6 01 32-0B 8A 3E 2F D3 08 CD C8    a.:....2..>/....
0230   03 3A 03 88 E6 3E D3 10-C3 39 00 21 0A 00 22 0D    .:...>...9.!..".
0240   8A 11 00 A0 21 0F 8A 3E-3B D3 08 1B 7B B2 CA 8B    ....!..>;.......
0250   02 DB 08 1F 1F DA 4B 02-DB 0B 77 23 DB 08 1F 1F    ......K...w#....
0260   D2 58 02 17 D2 5C 02 CD-7C 02 E6 0C 32 0B 8A C8    .X...\......2...
0270   21 0D 8A 35 C2 41 02 3A-0B 8A B7 C9 2E 05 2D C2    !..5.A.:......-.
0280   7E 02 21 00 00 2B 7C B5-C2 93 02 3C 0F 32 0B 8A    ..!..+.....<.2..
0290   C3 22 02 DB 08 2F 1F DA-85 02 17 F5 3E 2F D3 08    .".../......>/..
02A0   F1 C9 3A 03 88 E6 3E D3-10 AF 32 0B 8A C3 39 00    ..:...>...2...9.
02B0   21 00 18 E5 E1 2B 7C B5-C2 B3 02 C9 3E FF 32 0C    !....+......>.2.
02C0   8A 3A 03 88 E6 1E 32 06-88 01 01 FF ED 43 19 8A    .:....2......C..
02D0   3A 03 88 E6 20 CA DF 02-01 01 FE ED 43 19 8A 3A    :... .......C..:
02E0   05 88 57 DB 09 BA CA F6-02 7A D3 0B 3E E4 D3 08    ..W......z..>...
02F0   CD 7C 02 CD B0 02 1E FE-26 0A 3E 0B D3 08 01 28    ........&.>....(
0300   B1 CD 8E 03 01 10 B1 CD-8E 03 01 0A FF CD 8E 03    ................
0310   01 03 0A CD 8E 03 01 01-01 CD 8E 03 42 0E 01 CD    ............B...
0320   8E 03 ED 4B 19 8A CD 8E-03 43 0E 01 CD 8E 03 01    ...K.....C......
0330   01 FD CD 8E 03 01 01 08-CD 8E 03 01 16 B1 CD 8E    ................
0340   03 01 0C FF CD 8E 03 01-03 0A CD 8E 03 01 01 05    ................
0350   CD 8E 03 01 FF E5 CD 8E-03 0E FF CD 8E 03 0E 02    ................
0360   CD 8E 03 01 01 08 CD 8E-03 1D 25 C2 04 03 01 FF    ..........%.....
0370   B1 CD 9D 03 0E FF CD 9D-03 DB 08 2F E6 22 32 0B    .........../."2.
0380   8A C2 22 02 3E 2F D3 08-CD C8 03 C3 2A 02 DB 08    ..".>/......*...
0390   1F 1F DA 8E 03 78 D3 0B-0D C2 8E 03 C9 CD 91 01    .....x..........
03A0   78 D3 0B 0D C2 9D 03 C9-C1 C9 D9 3E A4 D3 08 CD    x..........>....
03B0   7C 02 E6 00 D9 C2 22 02-C9 D9 3E 84 D3 08 CD 7C    ......"...>.....
03C0   02 E6 00 D9 C2 22 02 C9-3E 05 3D C2 CA 03 C9 FF    ....."..>.=.....
03D0   FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF    ................
03E0   FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF    ................
03F0   FF FF FF FF FF FF FF FF-FF FF FF FF FF FF 77 FF    ..............w.
0400   C3 06 C0 C3 60 C2 F3 31-FF F3 3E 82 D3 6B 3E 2A    ....`..1..>..k>*
0410   D3 6A 3E 43 32 22 C3 D3-68 3E 08 D3 6B 3E 55 32    .j>C2"..h>..k>U2
0420   00 88 3E AA 32 01 88 3E-B2 D3 6A 3E C3 32 38 00    ..>.2..>..j>.28.
0430   21 DA C0 22 39 00 21 00-00 22 DE C2 22 E0 C2 22    !.."9.!.."..".."
0440   E2 C2 22 E4 C2 21 E9 C2-06 19 3E 00 77 23 05 C2    .."..!....>.w#..
0450   4C C0 21 02 C3 06 19 3E-00 77 23 05 C2 59 C0 32    L.!....>.w#..Y.2
0460   1E C3 32 1F C3 CD 25 C1-D3 48 ED 56 FB C3 A6 C0    ..2...%..H.V....
0470   21 84 C0 CD 77 C0 C9 7E-E5 CD F7 C0 E1 7E B7 F8    !...w...........
0480   23 C3 77 C0 33 2E 31 20-20 20 49 4E 53 45 52 54    #.w.3.1   INSERT
0490   20 44 49 53 4B 45 54 54-45 20 49 4E 54 4F 20 44     DISKETTE INTO D
04A0   52 49 56 45 20 C1 01 00-FF CD 71 C2 CD B6 C2 CD    RIVE .....q.....
04B0   AA C2 E6 80 CA CB C0 CD-70 C0 01 00 00 CD 71 C2    ........p.....q.
04C0   CD B6 C2 CD AA C2 E6 80-C2 BA C0 21 80 C7 11 01    ...........!....
04D0   00 01 00 01 CD 60 C2 C3-80 C7 E5 D5 C5 F5 DB 69    .....`.........i
04E0   E6 04 CA F1 C0 CD 25 C1-DB 48 F1 C1 D1 E1 FB ED    ......%..H......
04F0   4D CD 0F C1 C3 E8 C0 E6-7F 47 D6 20 FA 04 C1 78    M........G. ...x
0500   CD 50 C1 C9 FE 0A CA 36-C2 FE 0D CA 54 C2 C9 2A    .P.....6....T..*
0510   E7 C2 7E 23 22 E7 C2 B7-CA 20 C1 3E 02 D3 6B C9    ...#".... .>..k.
0520   3E 03 D3 6B C9 CD EB C1-21 02 C3 11 E9 C2 01 19    >..k....!.......
0530   00 ED B0 21 E9 C2 22 E7-C2 CD 0F C1 3A 1C C3 3D    ...!..".....:..=
0540   32 1C C3 3A 1B C3 3D 32-1B C3 C0 3E 0C D3 6B C9    2..:..=2...>..k.
0550   32 E6 C2 CD 6A C1 7E B7-CC D5 C1 2A E0 C2 7C F6    2...j......*....
0560   F8 67 3A E6 C2 77 CD 10-C2 C9 21 02 C3 16 00 3A    .g:..w....!....:
0570   DF C2 5F 19 C9 F3 2A E4-C2 11 50 00 19 22 E4 C2    .._...*...P.."..
0580   21 03 C3 11 02 C3 01 18-00 ED B0 3E 00 12 FB C9    !..........>....
0590   21 A3 C1 3A DF C2 07 5F-16 00 19 5E 23 56 2A E4    !..:..._...^#V*.
05A0   C2 19 C9 00 00 50 00 A0-00 F0 00 40 01 90 01 E0    .....P.....@....
05B0   01 30 02 80 02 D0 02 20-03 70 03 C0 03 10 04 60    .0..... .p.....`
05C0   04 B0 04 00 05 50 05 A0-05 F0 05 40 06 90 06 E0    .....P.....@....
05D0   06 30 07 80 07 CD 90 C1-16 50 3E F8 B4 67 36 20    .0.......P>..g6
05E0   23 15 C2 DA C1 CD 6A C1-36 FF C9 2A E4 C2 22 E2    #.....j.6..*..".
05F0   C2 EB 2A E0 C2 7C E6 0F-67 7A E6 0F 57 3E 01 D3    ..*.....gz..W>..
0600   6B 3E 03 77 3E 01 EB 77-3E 02 77 3E 00 D3 6B C9    k>.w>..w>.w>..k.
0610   2A E0 C2 23 22 E0 C2 2A-DE C2 2C 7D FE 50 C2 32    *..#"..*..,..P.2
0620   C2 2E 00 7C FE 18 C2 31-C2 E5 CD 75 C1 E1 C3 32    .......1...u...2
0630   C2 24 22 DE C2 C9 2A E0-C2 11 50 00 19 22 E0 C2    .$"...*...P.."..
0640   3A DF C2 FE 18 C2 4F C2-32 DF C2 CD 75 C1 C9 3C    :.....O.2...u..<
0650   32 DF C2 C9 CD 90 C1 22-E0 C2 3E 00 32 DE C2 C9    2......"..>.2...
0660   E5 CD 71 C2 CD B6 C2 E1-CD 9A C2 CD AA C2 E6 01    ..q.............
0670   C9 CD C5 C2 21 02 88 70-23 71 23 7B 2F 77 23 7A    ....!..p#q#./w#z
0680   2F 77 3E FF 32 07 88 CD-D4 C2 C9 CD C5 C2 11 08    /w>.2...........
0690   88 01 00 02 ED B0 CD D4-C2 C9 CD C5 C2 EB 21 08    ..............!.
06A0   88 01 00 02 ED B0 CD D4-C2 C9 CD C5 C2 3A 0B 8A    .............:..
06B0   F5 CD D4 C2 F1 C9 DB 69-E6 20 CA B6 C2 DB 69 E6    .......i. ....i.
06C0   20 C2 BD C2 C9 3E 0A D3-6B DB 69 17 DA C9 C2 3E     ....>..k.i....>
06D0   08 D3 6B C9 3E 09 D3 6B-3E 0B D3 6B C9 03 21 06    ..k.>..k>..k..!.
06E0   DD FE 58 28 10 06 FD FE-59 28 0A 06 00 FE 48 20    ..X(....Y(....H
06F0   16 79 B5 20 12 CD AF 1E-38 0F FE 29 20 0B CD 4F    .y. ....8..) ..O
0700   1D 3E 06 5D E1 37 C9 06-00 CD E8 25 18 F3 79 B7    .>.].7.....%..y.
0710   C4 D8 25 7D E1 18 10 CD-C7 22 C5 F5 07 07 07 47    ..%......".....G
0720   F1 78 C1 C9 CD 8F 23 F5-FE 08 D4 E0 25 F1 E6 07    .x....#.....%...
0730   C9 CD 24 23 07 07 07 C9-CD B2 1E 38 1D CD 03 21    ..$#.......8...!
0740   06 DD FE 58 28 06 06 FD-FE 59 20 14 CD 4F 1D 3A    ...X(....Y ..O.:
0750   42 01 B7 C4 EC 25 3E 20-37 C9 CD CC 25 AF 47 C9    B....%> 7...%.G.
0760   CD 8F 23 FE 08 D4 E0 25-E6 07 0F DC E0 25 07 07    ..#....%.....%..
0770   07 07 06 00 C9 CD 46 2A-28 0D FE 04 38 06 3A 38    ......F*(...8.:8
0780   01 B9 20 03 CD D8 25 7C-B7 C8 3C C8 C3 E0 25 C5    .. ...%...<...%.
0790   E5 CD 46 2A C4 D8 25 7C-B7 28 04 3C C4 E0 25 7D    ..F*..%..(.<..%.
07A0   E1 C1 C9 EB 2A 22 03 E5-22 3F 03 06 0B AF CD 8F    ....*".."?......
07B0   25 10 FB EB 23 23 23 46-23 E5 0E 00 26 00 CD B2    %...###F#...&...
07C0   1E DA B5 24 FE 5B 20 09-24 CD AF 1E FE 5D CA B5    ...$.[ .$....]..
07D0   24 FE 28 20 19 2E 01 CD-4F 1D FE 29 20 09 2D CA    $.( ....O..) .-.
07E0   91 24 CD 8F 25 18 F0 FE-28 20 F7 2C 18 F4 FE 5C    .$..%...( .,...\
07F0   20 47 CD 4F 1D C5 E5 CD-46 2A C4 CC 25 3A 17 01     G.O....F*..%:..
0800   3A 00 88 FE 55 C2 13 00-3A 01 88 FE AA C2 13 00    :...U...:.......

User avatar
hoglet
Posts: 6604
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Fixing a Superbrain up

Postby hoglet » Fri May 12, 2017 2:51 pm

Hi Jon,

FYI, the dumped ROM is a 100% match to this one:
http://bitsavers.trailing-edge.com/pdf/ ... n_V3.1.bin

Good luck with the next phase!

Dave

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Fri May 12, 2017 3:16 pm

Dave, Phil

Thanks for your help and advice yet again!

Now I'm thinking "what next?"

As the screen is memory mapped, I will attempt to put some values in there with the ICE and see what happens. The line of boxes may or may not be the "insert diskette" message, incorrectly rendered by the character chip (it's not a simple ROM). It could be that the RAM is playing up again. It seems sensitive to voltage levels.

Then there is CPU2 and its memory... as you know, this is doing all the disk I/O. It's implementing a sort of DMA scheme with a bit of paged RAM.

And of course, the keyboard chip needs to be tried again. I might be in trouble if that's gone, because although it's a standard part, it is factory programmed with the keyboard map. Kind of like a ULA.

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Fri May 12, 2017 5:10 pm

Oooh. Look what I found at the top of screen RAM:

Code: Select all

F800   50 52 45 53 53 20 27 46-27 20 54 4F 20 42 4F 4F    PRESS 'F' TO BOO
F810   54 20 46 52 4F 4D 20 46-4C 4F 50 50 59 2C 20 41    T FROM FLOPPY, A
F820   4E 59 20 4F 54 48 45 52-20 4B 45 59 20 54 4F 20    NY OTHER KEY TO
F830   42 4F 4F 54 20 46 52 4F-4D 20 48 41 52 44 20 44    BOOT FROM HARD D
F840   49 53 4B 3A 20 20 20 20-20 20 20 20 20 20 20 20    ISK:
F850   FF 00 FF 00 FF 00 FF 00-FF 00 FF 00 FF 00 FF 00    ................
F860   FF 00 FF 00 FF 00 FF 00-FF 00 FF 00 FF 00 FF 00    ................
F870   FF 00 FF 00 FF 00 FF 00-FF 00 FF 00 FF 00 FF 00    ................


It is waiting for a keypress.... maybe...

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Fri May 12, 2017 5:16 pm

.. but there is a problem with RAM Bank 0 now..

Code: Select all

OK ===> md

0000000000000000111111111111111122222222222222223333333333333333
0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
R RRRRRRRRR RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
W WWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
0 000000000 0000111111111111111122222222222222223333333333333333
0 23456789A CDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF


See those blank columns? That's like what we got with the ROM.. Despite me already getting the RAM working. I'll have to page the ROM out fully and try again.

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Fri May 12, 2017 5:47 pm

Meanwhile, I refitted the keyboard controller with an IC socket.

Now the machine is dead, so I conclude that the controller is dragging the bus down again. :(

There may be a way to simulate a keypress using a test port on the PPIC. I found this in one of the "Superletter" documents:

Code: Select all

KEYBOARD PORTS:
Character Port              50H
Test Port (PPI Port B)      69H
Set/Reset Port (PPI Port C) 6AH

The Test Port is used as follows:
BIT INFORMATION
0   Set for new character
1   Set for any key down
4   Reset for caps lock

When bit 7 is set on PPI Port C keyboard
new character tests may be done at PPI Port
B bit O. Resetting bit 7 on PPI Port C resets
bit 0 on PPI Port B; this prevents multiple
inputs of a character. The character is input
from the keyboard encoder at Port 5OH
(Standard Microsystems KR3600-PRO).


So maybe if I do a sequence like

> o 6A,80 followed by
> o 69,01 or > o 69,00

Must be careful though.. there are other bits on there, and when I look at the ports they already have these bits set. 6A shows B0 and 69 shows D0.

User avatar
hoglet
Posts: 6604
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Fixing a Superbrain up

Postby hoglet » Sat May 13, 2017 6:25 am

jonb wrote:As the screen is memory mapped, I will attempt to put some values in there with the ICE and see what happens. The line of boxes may or may not be the "insert diskette" message, incorrectly rendered by the character chip (it's not a simple ROM). It could be that the RAM is playing up again. It seems sensitive to voltage levels.

I would start by confirming the control inputs from the 8255 to the CRT8002 (Z58) have been setup correctly:
- Mode 0 and Mode 1 should both be high (alphanumeric mode). From the photo, that looks to be the case.
- STKRU (strike through) should be low
- UNLN (underline) should be low

I would then check that the four row address inputs are all active (again, the gaps in the photo indicate these are OK as well).

If that's the case, then it looks like the character generator ROM inside the CRT8002 is bad.

Replacements are available:
http://www.ebay.co.uk/itm/CRT8002-VIDEO ... 1828053877

jonb wrote:And of course, the keyboard chip needs to be tried again. I might be in trouble if that's gone, because although it's a standard part, it is factory programmed with the keyboard map. Kind of like a ULA.

Before condemning the KR3600, make sure its chip enable input is not stuck low, e.g. due to a failed 74LS138 (Z80).

The circuit diagram shows the keyboard encoder as a KR3600-PRO, is that what's actually fitted? The suffix indicates the ROM contents.

In another machine - an Apple ][+ - someone managed to replace the KR3600 with a PIC18F46K22:
http://www.seanriddle.com/kr3600.html
I guess this would need a small carrier board.

Dave
Last edited by hoglet on Sat May 13, 2017 7:50 am, edited 1 time in total.

User avatar
hoglet
Posts: 6604
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Fixing a Superbrain up

Postby hoglet » Sat May 13, 2017 7:45 am

Jon,

One more keyboard related point.

The only place in the boot ROM where the keyboard is accessed is here:

Code: Select all

c346 3E0E      LD      A,0EH
c348 D36B      OUT     (6BH),A
c34a 3E0F      LD      A,0FH
c34c D36B      OUT     (6BH),A
c34e DB50      IN      A,(50H)
c350 DB50      IN      A,(50H)
c352 DB50      IN      A,(50H)
c354 E65F      AND     5FH
c356 FE46      CP      46H
c358 CAA6C0    JP      Z,0C0A6H
c35b C3A3C3    JP      0C3A3H

It's looking specifically for a key code 0x46.

I'm assuming this corresponds to:
PRESS 'F' TO BOOT FROM FLOPPY, ANY OTHER KEY TO BOOT FROM HARD DISK:

as 0x46 is the ASCII code for F

This means the keyboard encoder is producing ASCII.

Looking at the data sheets, I don't think the KR3600-PRO produced ASCII.

So it must be using a custom programmed version of the KR3600.

You probably knew this, so this is just me catching up!

Dave

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Sat May 13, 2017 3:29 pm

Hi Dave

I''ll try to answer your points one at a time:

  • The keyboard encoder has KR3600-056 printed on it, along with "SMC" (maker) and "8121" (manufacture date week 21, 1981 I guess). Not a PRO as shown on the schematic. The datasheet for the non PRO indicates it's got a map inside it that is programmed when made using the client's specifications. In other words, Intertec will have ordered the encoders and stated what code to return for each keypress, at a guess, which is why I said I might be in trouble. It is a pity they are not field programmable! Alternatively, I might be able to fit a PRO, alter the ROM so it is looking for whatever code the F key would produce, and alter the CP/M BIOS to do the character mapping for me.
  • Good spot on the ROM.. ;)
  • /CE is high on the keyboard encoder at the point of printing the row of boxes.
  • Shame that chap didn't explain how he used a PIC to replace the keyboard encoder!
  • CRT8002: M0 / M1 both high, Strikethrough / Underline both low, R0-R3 all active, A0-A6 active, A7 low (this is OK as it is grounded in the schematic).

As it appears to be waiting for a keypress, perhaps I could hack a ROM to ignore this and jump straight to the floppy boot routine. Of course, this may do nothing!

Cheers
JonB

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Sat May 13, 2017 4:03 pm

c336 DB69 IN A,(69H) ; poll keyboard data ready
c338 1F RRA ; bit 0 into carry
c339 D236C3 JP NC,0C336H ; set?
c33c 3E0D LD A,0DH
c33e CDF7C0 CALL 0C0F7H
c341 3E0A LD A,0AH
c343 CDF7C0 CALL 0C0F7H
c346 3E0E LD A,0EH
c348 D36B OUT (6BH),A
c34a 3E0F LD A,0FH
c34c D36B OUT (6BH),A
c34e DB50 IN A,(50H)
c350 DB50 IN A,(50H)
c352 DB50 IN A,(50H)
c354 E65F AND 5FH
c356 FE46 CP 46H
c358 CAA6C0 JP Z,0C0A6H

c35b C3A3C3 JP 0C3A3H

All italic code replaced with NOPs. Should sled on down to the jump for floppy boot. I should see some drive activity..

.. but no.. nothing. Pfft...

User avatar
hoglet
Posts: 6604
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Fixing a Superbrain up

Postby hoglet » Sat May 13, 2017 6:03 pm

I think you have just tried to boot from hard disk.

The floppy boot is 0C0A6H

Dave

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Sat May 13, 2017 6:55 pm

hoglet wrote:I think you have just tried to boot from hard disk.

The floppy boot is 0C0A6H

Dave


Oh darn it, you're right. :oops:

I am very, very tired today... :(

To be honest, I don't know why I didn't just use the ICE for this. Except, there is some interrupt going on that refreshes the sctreen somehow. Use the ICE and I lose the display.

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Sun May 14, 2017 6:37 am

Well..

Code: Select all

C353 00             NOP
C354 00             NOP
C355 00             NOP
C356 00             NOP
C357 00             NOP
C358 00             NOP
C359 00             NOP
C35A 00             NOP
C35B C3 A6 C0       JP C0A6


^that looks a bit better. However, it gives no disk activity. Meanwhile I ordered a new CRT-8002.

I do not seem to be having a lot of luck with this one.

User avatar
hoglet
Posts: 6604
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Fixing a Superbrain up

Postby hoglet » Sun May 14, 2017 7:08 am

jonb wrote:I do not seem to be having a lot of luck with this one.

You will get there in the end, and then it'll all have been worth it!

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Sun May 14, 2017 7:15 am

^ You are quite right, Dave!

Problem with me is I get impatient. I should have learned by now that this sort of thing is about the journey.

Anyway.. about the keyboard encoder. It seems all is not lost here, as there is another way to make it work (other than a PIC chip). Using a readily available KR9600-PRO and a small ROM chip, I could generate ASCII from the keyboard, like this:

KR9600-PRO application.JPG


It's from the KR9600 datasheet. All it amounts to is putting a ROM chip between the output of the KR9600 and the data bus, to provide a mapping between the encoder's output and ASCII. I think this would work with any KR9600 variant, given the right map in the ROM. As before, it would need a carrier board in a spot where there is very little vertical space once the top cover is on the machine. However, there is space to the right of the chip (actually, a blank 18 pin chip footprint) so I could be made to fit.

Come to think of it, I wonder what that footprint is for. Could it be a small ROM for allowing the use of the PRO part?

[Edit: No it isn't. It's marked as "SPARE" on the layout diagram and all the pads are isolated.]

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Sun May 14, 2017 9:15 am

A KR3600-PRO adapter for the Superbrain might look a bit like this.

KR9600-PRO adapter.JPG


  • P1 is the KR3600 socket on the Superbrain's main PCB
  • U1 is the KR3600-PRO keyboard encoder chip
  • U2 is a 2816 EEPROM, chosen becasue I have a spare.

I may need an inverter between K16 and /CE - /OE. K16 is the encoder's Data Ready output, and I am using it to enable the ROM. Power is provided by the Superbrain at K30 (5v) and K15 (0v).

It's possible to add switches to A8, A9 and A10 of the ROM to allow a selection between any of seven different maps. They would toggle between 0v and 5v.

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Sun May 14, 2017 2:41 pm

Updated.

KR9600-PRO adapter.JPG


I added the inverter and a set of jumpers to facilitate choice between one of seven different keyboard maps that the EEPROM has space for.

The board looks like this:

KR9600-PRO adapter PCB.JPG
OSH Park PCB render


It will work as a Z80 shim card, sitting between the KR3600 PRO and the Superbrain main board, with the EEPROM off to the right.

The only question concerns the /CE and /WE signals of the EEPROM. Should they be fed by Dta Ready? It appears to be a strobed output - I had hoped it went high to indicate a character was ready to be read.

User avatar
hoglet
Posts: 6604
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Fixing a Superbrain up

Postby hoglet » Sun May 14, 2017 3:13 pm

Jon,

I think there are a few changes you need to make to your design. It's particularly important to that the ROM only drives the data bus when an IN (50H), A instruction is executed. Your current design drives it when ever a key is pressed, which will cause all sorts of random crashes :shock:

Specifically,
- remove the inverter
- connect nOE on the EPROM to pin 4 of the 40-pin header (so it's driven off the old nCE signal from the LS138)
- tie nCE on the EPROM to 0V (always enabled)
- tie pin 4 of the KR3600-PRO to either 0V if you want N-Key-Rollover (the default is an internal pullup to VDD selecting N-Key-Lockout). Not sure which of these the SuperBrain needs, or if it even cares.... Maybe a jumper?


Dave

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Mon May 15, 2017 9:30 am

Re: the inverter: Ok. I see I am never going to use this bunch of single gate inverter ICs I bought.. :lol:

On the schematic, Pin 4 is /CE for the encoder and Pin 5 is the AKO "any key down" output. It is configured to use the internal oscillator, so I think the highlighted line applies:

KR3600 options.JPG
From the AY-5-3600 datasheet


..as pins 1,2 and 3 are connected to what the datasheet calls an "internal RC network".

So the rollover / lockout is likely to be whatever the default is (rollover, I think), given that pin 4 is used as /CE. Anyway, with your suggestions it looks like this:

KR9600-PRO adapter.JPG
With your changes...


I still use the encoder's /CE per the schematic (not tied to GND), but I can see that if it was constantly enabled there would be no data bus corruption as this is controlled by /OE on the EEPROM. However, it would be sending AKO to the 8255 with every press, even when the CPU wasn't polling for it, so I have opted to keep it as true to the original layout as possible.

Let me know if you disagree. :) Meanwhile, I have ordered a clone of the SMC part - AY-5-3600 PRO.

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Mon May 15, 2017 9:50 am

About the character generation circuit...

hoglet wrote:If that's the case, then it looks like the character generator ROM inside the CRT8002 is bad.


Just wondering... might the shift register (Z55) be bad? I suppose not, as it appears to be on the input side of the CRT8002.

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Mon May 15, 2017 10:03 am

It now looks like this:

KR3600-PRO adapter PCB.png
OSH Park render

User avatar
hoglet
Posts: 6604
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Fixing a Superbrain up

Postby hoglet » Mon May 15, 2017 2:18 pm

Hi Jon,
jonb wrote:I still use the encoder's /CE per the schematic (not tied to GND), but I can see that if it was constantly enabled there would be no data bus corruption as this is controlled by /OE on the EEPROM. However, it would be sending AKO to the 8255 with every press, even when the CPU wasn't polling for it, so I have opted to keep it as true to the original layout as possible.

Let me know if you disagree. :) Meanwhile, I have ordered a clone of the SMC part - AY-5-3600 PRO.

My reading of the data sheet:
http://www.applelogic.org/files/AY3600.pdf#page=9
was that the PRO part doesn't actually have a /CE input. Instead, pin 4 is used to select between N-key lockout and N-key rollover.

I don't think there is an issue with AKO, as even in the -056 part this is always active (i.e. it's not enabled by /CE). Or put it another way, /CE is an output enable for B1..B9 only.

I just spotted one more issue in your schematic. Output B9 from the encoder needs to be connected to A8 of the ROM. If you don't do this, you won't be able to map keys in rows 6-9.

Dave

User avatar
jonb
Posts: 2080
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Fixing a Superbrain up

Postby jonb » Mon May 15, 2017 2:39 pm

B9 is unconnected on the Superbrain schematic, which is why I made it optional, but I can see that the PRO is outputting 9 digits.. I guess it only needs 8 bits if it's going to output ASCII (well, 7, but err..) - I will connect it to A8. It's actually shown like that in the application note and it would remove one of the jumpers and give 4 possible keyboard maps. Much more manageable.

As to pin 4, I see that it is used to select Lockout / Rollover. So I can use a jumper for that...
Last edited by jonb on Mon May 15, 2017 3:40 pm, edited 3 times in total.


Return to “other vintage computer hardware, software and games”

Who is online

Users browsing this forum: No registered users and 1 guest