Loading basic through the serial port

dave
Site Admin
Posts: 710
Joined: Tue Sep 09, 2008 5:24 am

Re: Loading basic through the serial port

Post by dave »

Hi Phil,

The 2114 chips are organized as 1K x 4 bits, so two chips form each 1K block, each chip spanning the entire 1K. The 1K boundaries span xx00-xx3F, xx40-xx7F, xx80-xxBF, and xxC0-xxFF. So all the errors are in a single 1K block, from 4400-44FF.

The RAM on the 527 is organized as 3 x 8K banks, which can be placed anywhere in the memory space by jumpering the appropriate outputs of a 74LS138 3-to-8 decoder to the /CE lines of the three banks. By default, the board is jumpered to place the banks at 0000-1FFF (bank 1), 2000-3FFF (bank2), and 4000-5FFF (bank3).

So, the failure is in the third RAM bank, second 1K block. From the 527 schematic, each bank has its own 74LS138 decoder to select the chips. Remember that on a RAM board, it doesn't really matter in what order the CE lines are mapped to the chips, as long as each chip gets its CE signal. So the board layout designer may route the chip selects for the cleanest layout. In this case, the third RAM bank generates chip enable signals CE16-CE23, but looking at the schematic, the second 1K block ($4400-$47FF) activates CE22, (rather than CE17, as you may have guessed), so that would indicate a problem with the chips at E7/F7.

Try re-seating those chips to see if that fixes the problem. If not, try replacing the chips. Next, try removing the chips, and checking the values at $4400-$47FF. Inspect the sockets for damage, then inspect the traces for small breaks or shorts. A break in a trace to the chip would affect that bank. A short may affect all the banks (except a short involving the CE line), so would be less likely. Try resoldering the pins on these chips. You can try to use a logic probe to detect a pulse on the CE pin to that bank (pin8 of E7 and F7), and at the decoder (pin 14 of E9).

Do you by any chance have an oscilloscope? Not necessary, but it could come in handy.

Finally, I'm basing the above on the schematic for the 527 board, but you indicate you have a 427 board. I couldn't find that in my archive or in Mark S's board archive (http://osi.marks-lab.com/boards/boards.html). If you have a 427 board, would you mind taking a picture of it and posting it here so we can see the differences? If it's a different board, then most of the above would likely still apply, but you may have to figure out the address decoding scheme by looking at which address lines go into each decoder, and which chip enable lines go to which RAM chips. It would likely be similar to the 527 board, but routing may not be identical. About 10 minutes worth of work with an ohmmeter.

Best regards,

Dave
nama
Posts: 357
Joined: Wed Mar 30, 2011 9:44 am
Location: New Zealand
Contact:

Re: Loading basic through the serial port

Post by nama »

Oops, my bad. I was meant to type 527, not 427. I blame my fat fingers.

Thanks for the reply. It's very informative and certainly help me understand how the RAM is addressed. I didn't imagine they were in pairs like that.

I have reinserted, and even totally removed E7 and F7, however the problem still persists. So I believe these are not the two chips addressed to 4400-47FF. I'll do some pulling of other chips and check. I think I'll start with pulling all the x7's in pairs and see if I can find the two in question.

Back soon...

2P (1mhz 32k) - 502 + 8k + CEGMON + garbage collector fix BASIC, D&N MEM-CM9 + 24k, 540 (mono) [SOLD]
4PMF (2mhz 24k) - 505, 540, 527, D13 + 5.25" + Gotek
Superboard RevD - CEGMON + 610 board 24k + D13
Spares - 3 x 527, 1 x 505, Backplane
nama
Posts: 357
Joined: Wed Mar 30, 2011 9:44 am
Location: New Zealand
Contact:

Re: Loading basic through the serial port

Post by nama »

Bad RAM found!
first I switched around A7 and B7 and I started getting errors at 4400 instead of 441B. Eureka!
I then swapped out the 2114 at A7 (formerly B7) for a known good one and so far it seems to be working well. I'm just running through the RAM test program a few times just to be sure. Fingers crossed.

Dave, you rock! Thanks again for the help.

2P (1mhz 32k) - 502 + 8k + CEGMON + garbage collector fix BASIC, D&N MEM-CM9 + 24k, 540 (mono) [SOLD]
4PMF (2mhz 24k) - 505, 540, 527, D13 + 5.25" + Gotek
Superboard RevD - CEGMON + 610 board 24k + D13
Spares - 3 x 527, 1 x 505, Backplane
dave
Site Admin
Posts: 710
Joined: Tue Sep 09, 2008 5:24 am

Re: Loading basic through the serial port

Post by dave »

My pleasure. That's great news. Looking back at the schematic, I see that the default jumpering actually places the banks at $2000-$3FFF, $4000-$5FFF, and $6000-$7fff. This was probably based on the assumption that a 502 board with 8K was present. For your 505 system, the 527 jumpering would be different, explaining why the the first bank (A/B) is at $4000.

If you have an ohm-meter, figure out which banks' CE lines (Jumpers W1, W2, W3) . I imagine one will connect to pin 15, another to pin 14, and the third to pin 13, especially if the RAM test is passing up to $5FFF. You will want to change the jumper connecting to pin 13 to connect to pin 10 ($A000) if you want to try to store BASIC there.

Good luck,

Dave
nama
Posts: 357
Joined: Wed Mar 30, 2011 9:44 am
Location: New Zealand
Contact:

Re: Loading basic through the serial port

Post by nama »

Today I upgraded the serial to 9600 Baud. One trace cut and a jumper later I now have a super fast connection and I can load SuperDefender in less than 15 seconds.
Unfortunately when I was removing the 505B board a pin broke on one of the connectors that connect to the back plane. Fortunately I had that home made 8" floppy adaptor with identical connectors installed. Out came my desoldering station and I was able to replace the broken connector in less than 15 mins.

Finally today I re-jumpered the address to allow for $A000. As you suggested, a quick check with a multimeter and it was easy to see what needed to be done. Even though I still don't have the EPROM with the reorganized SYN600 data installed, I thought I'd try loading basic into A000...unfortunately I still could not get it to work.

2P (1mhz 32k) - 502 + 8k + CEGMON + garbage collector fix BASIC, D&N MEM-CM9 + 24k, 540 (mono) [SOLD]
4PMF (2mhz 24k) - 505, 540, 527, D13 + 5.25" + Gotek
Superboard RevD - CEGMON + 610 board 24k + D13
Spares - 3 x 527, 1 x 505, Backplane
nama
Posts: 357
Joined: Wed Mar 30, 2011 9:44 am
Location: New Zealand
Contact:

Re: Loading basic through the serial port

Post by nama »

The ordered switching power supply arrived today. Its actually rated a 5V 10A, and it seems to run both 527 RAM cards fine.
I ran some memory test on the second 527 card and ultimate found 2 more dead 2114's which I replaced.
So good news, I now have a full compliment of 48K up and running.

2P (1mhz 32k) - 502 + 8k + CEGMON + garbage collector fix BASIC, D&N MEM-CM9 + 24k, 540 (mono) [SOLD]
4PMF (2mhz 24k) - 505, 540, 527, D13 + 5.25" + Gotek
Superboard RevD - CEGMON + 610 board 24k + D13
Spares - 3 x 527, 1 x 505, Backplane
nama
Posts: 357
Joined: Wed Mar 30, 2011 9:44 am
Location: New Zealand
Contact:

Re: Loading basic through the serial port

Post by nama »

I received a 23XX adaptor from Jim Brain today.
I will burn a couple of EPROMs for testing sometime soon.
Just wanted your opinion. As I don't know the order in what each 256k block should be in the EPROM, I was wondering if anyone knew what order that came install in the OSI masked ROM?

The three parts I need to order are:

c2_key
c2_65v
c2_cwm
(and possibly 256k of zero's)

Once I figure out the order I can burn a larger EPROM and do bank switching between C/W/M and H/D/M.

Philip

2P (1mhz 32k) - 502 + 8k + CEGMON + garbage collector fix BASIC, D&N MEM-CM9 + 24k, 540 (mono) [SOLD]
4PMF (2mhz 24k) - 505, 540, 527, D13 + 5.25" + Gotek
Superboard RevD - CEGMON + 610 board 24k + D13
Spares - 3 x 527, 1 x 505, Backplane
dave
Site Admin
Posts: 710
Joined: Tue Sep 09, 2008 5:24 am

Re: Loading basic through the serial port

Post by dave »

Hi Philip,

The 505 card has ROM-segment remapping logic, just like the 502 card, to map any 256 byte block in the ROM to FE00, FD00, and FF00. So theoretically, you could put the blocks in any order, and set the jumpers accordingly.

However, if the ROM in the machine works, you can use it; default should be pre-configured for the H/D/M? boot block; the /FF00 line to pin 13 of U2C. To boot to C/W/M?, you would connect the /FF00 line to pin 13 of U2C. This would be done via the jumper block, but I can't read the numbers on the schematic I have. You can add an SPDT switch to remap either the C/W/M? block or the H/D/M? block to FF00.

I would really only consider burning a 2716 if the original ROM is bad; or if you want to modify one of the 256K blocks; or if you want to remove the ROM-remapping circuit to install the CEGMON monitor or some other ROM replacement.

I found this in Mark's WinOSI simulator. It looks like the mapping jumper will be the same for SYN600 or SYNMON1:

// SYNMON1 OSI 440/540/Serial boot notes
//
// Page 0 FE00 OSI 440 board 65V monitor (ASCII KB)
// Page 1 FF00 OSI 440 board C/W/M BASIC boot (ASCII KB)
// Page 2 *FD00 C2/540 Polled Keyboard routine
// Page 3 *FE00 C2/540 65V Monitor
// Page 4 *FF00 C2/540 BASIC Boot (C/W/M?)
// Page 5 FD00 initializes HDisk controller? (HD boot?)
// Page 6 FE00 OSI 65A Serial Monitor
// Cmds 'R' reset,
// 'P' read Hex,
// 'L' nn - read nn pages from acia
// 'G' go?
// Page 7 *FF00 C2/540 disk boot (H/D/M?) works with serial or video
// *(same as SYN600)

// So it can support:
// 440 video/ASCII KB, BASIC in ROM (C/W/M)(FF00-pg1, FE00-pg0)
// 440 video/ASCII KB, Disk/HD system(H/D/M)(FF00-pg7, FE00-pg0, FD00-pg5-if HD)
// 540 video/Polled KB, BASIC in ROM (C/W/M)(FF00-pg4, FE00-pg3, FD00-pg2)
// 540 video/Polled KB, Disk, noHD (H/D/M)(FF00-pg7, FE00-pg3, FD00-pg2)
// Serial Disk/HD system (H/D/M)(FF00-pg7, FE00-pg6 FD00-pg5-if HD)


Dave
Post Reply