Fixing a Superbrain up
Re: Fixing a Superbrain up
(post two above edited slightly)
Re: Fixing a Superbrain up
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.
Re: Fixing a Superbrain up
Excellent!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.
Re: Fixing a Superbrain up
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.
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...
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 3:12 pm, edited 1 time in total.
- 1024MAK
- Posts: 10930
- Joined: Mon Apr 18, 2011 5:46 pm
- Location: Looking forward to summer in Somerset, UK...
- Contact:
Re: Fixing a Superbrain up
That's good news
Mark
Mark
For a "Complete BBC Games Archive" visit www.bbcmicro.co.uk NOW!
BeebWiki - for answers to many questions...
Fault finding index • Acorn BBC Model B minimal configuration • Logic Levels for 5V TTL Systems
BeebWiki - for answers to many questions...
Fault finding index • Acorn BBC Model B minimal configuration • Logic Levels for 5V TTL Systems
Re: Fixing a Superbrain up
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
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
Re: Fixing a Superbrain up
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.
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.
Re: Fixing a Superbrain up
Dave, it looks OK. 3.1 INSERT DISKETTE INTO DRIVE message is a dead giveaway.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
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...:.......Re: Fixing a Superbrain up
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
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
Re: Fixing a Superbrain up
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.
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.
Re: Fixing a Superbrain up
Oooh. Look what I found at the top of screen RAM:
It is waiting for a keypress.... maybe...
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 ................Re: Fixing a Superbrain up
.. but there is a problem with RAM Bank 0 now..
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.
Code: Select all
OK ===> md
0000000000000000111111111111111122222222222222223333333333333333
0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
R RRRRRRRRR RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
W WWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
0 000000000 0000111111111111111122222222222222223333333333333333
0 23456789A CDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
Re: Fixing a Superbrain up
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:
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.
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).> 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.
Re: Fixing a Superbrain up
I would start by confirming the control inputs from the 8255 to the CRT8002 (Z58) have been setup correctly: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.
- 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
Before condemning the KR3600, make sure its chip enable input is not stuck low, e.g. due to a failed 74LS138 (Z80).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.
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 8:50 am, edited 1 time in total.
Re: Fixing a Superbrain up
Jon,
One more keyboard related point.
The only place in the boot ROM where the keyboard is accessed is here:
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
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
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
Re: Fixing a Superbrain up
Hi Dave
I''ll try to answer your points one at a time:
Cheers
JonB
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).
Cheers
JonB
Re: Fixing a Superbrain up
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...
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...
Re: Fixing a Superbrain up
I think you have just tried to boot from hard disk.
The floppy boot is 0C0A6H
Dave
The floppy boot is 0C0A6H
Dave
Re: Fixing a Superbrain up
Oh darn it, you're right.hoglet wrote:I think you have just tried to boot from hard disk.
The floppy boot is 0C0A6H
Dave
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.
Re: Fixing a Superbrain up
Well..
^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.
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 C0A6I do not seem to be having a lot of luck with this one.
Re: Fixing a Superbrain up
You will get there in the end, and then it'll all have been worth it!jonb wrote: I do not seem to be having a lot of luck with this one.
Re: Fixing a Superbrain up
^ 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:
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.]
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:
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.]
Re: Fixing a Superbrain up
A KR3600-PRO adapter for the Superbrain might look a bit like this.
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.
- 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.
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.
Re: Fixing a Superbrain up
Updated.
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:
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.
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:
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.
Re: Fixing a Superbrain up
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
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
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
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
Re: Fixing a Superbrain up
Re: the inverter: Ok. I see I am never going to use this bunch of single gate inverter ICs I bought..
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:
..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:
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.
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:
..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:
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.
Re: Fixing a Superbrain up
About the character generation circuit...
Just wondering... might the shift register (Z55) be bad? I suppose not, as it appears to be on the input side of the CRT8002.hoglet wrote: If that's the case, then it looks like the character generator ROM inside the CRT8002 is bad.
Re: Fixing a Superbrain up
It now looks like this:
Re: Fixing a Superbrain up
Hi Jon,
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
My reading of the data sheet: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.
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
Re: Fixing a Superbrain up
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...
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 4:40 pm, edited 3 times in total.