• Please review our updated Terms and Rules here

Calling All Hands - Yamaha C1 Laptop Expansion Slot

Okay, built out the lotek C1 IDE interface, but haven't installed it.

I took the BIOS and cut it to a pair of chips. I double checked the start of each IC against the original BIOS Chips, one starts with a P and the other starts with a U type character. P is the lower IC (39) and the Uish thing is the upper (40.)

Upon power on it lets out 5 beeps.

The LCD never comes on using the replacement BIOS. On the C1 there is a routine that reads the dip switches on the back of the machine and then either turns on the internal LCD or uses the external CRT port. That routine isn't being hit from what I can see.
 
telmnstr - thanks so much for posting! This project (and all of Lo-tech) has unfortunately got laid up for the last year, but I'm super keen to get this sorted. Presumably this is a standard Phoenix BIOS beep code; there is a reference to Phoenix beep codes here: POST Codes (mrbios.com). Once we can get the BIOS sorted this hopefully will come together.

I have finally sorted out Lo-tech.co.uk with the current project status, links, downloads etc.

Any other testers willing and able to help with this project, please do get in touch. I'd love to have this project finished.
 
This is so cool! I recently acquired a C1 from my dad, so I'd love to be able to test this one day. Unfortunately the machine is stuck in EXT CRT mode regardless of the dip switch setting, and I don't have a compatible monitor to see if it even works properly. I haven't opened it up yet.

Anyone here in the San Diego area? Or even LA? I don't have experience repairing vintage computers, so I'd love to bring it to someone with more knowledge to clean it up/troubleshoot.
 
Any updates on this? I still have the card I populated and a working machine. The BIOS is what doesn't work. Checksum failure maybe?

I fixed mine which was stuck in EXT CRT. Bad caps and board repair from trace damage was the fix. I was going to go for another one on eBay but people bid it up too much :)
 
I've been looking into this and I think I've found the problem.

The system BIOS calculates the checksum but only for the second half of the BIOS. The first half appears to not be checksummed at all. It contains the BIOS Setup program only so it has 20 KB of free space (which is where XUB is patched in).

There is also a second checksum calculation for a smaller range in the second half of the BIOS. I'm not sure why they did that. Truth be told, there's a lot of strange things in this BIOS. For example, there are lots of junk instructions which ultimately do nothing intertwined with valid
code and the only reason I can think of why they would do that is to confuse anyone trying to reverse engineer the BIOS.

Anyway, since I changed the option ROM scan in the second half of the BIOS and put the other change to compensate for that in the first half, immediately after XUB, the checksum was still wrong. A POST card would display code 3 in this case.

So here's what I've done instead.

FIRST.BIN is 12 KB. Was previously called BEFORE.BIN and was 16 KB.
FF.BIN has been shortened to 2 KB. Was previously 10 KB.
LAST.BIN is 32 KB. Was previously called AFTER.BIN and was 38 KB. Confused yet? ;)
PTCHLAST.BIN is a patched copy of LAST.BIN with only two bytes changed: the option ROM scan at offset 8D8Eh has been extended to search for option ROMs up to segment F800h. The original BIOS only searched up to segment F000h for obvious reasons. A NOP (90h) used for padding at offset 8E48h has been changed to 88h to compensate for that.

This means that you can now do this to create a copy of the original system BIOS in ORIGINAL.BIN;
Code:
copy/b FIRST.BIN+FF.BIN+FF.BIN+FF.BIN+FF.BIN+FF.BIN+FF.BIN+FF.BIN+FF.BIN+FF.BIN+FF.BIN+LAST.BIN ORIGINAL.BIN
That is 12 KB + 10 * 2 KB + 32 KB = 64 KB

Or you can create a BIOS with *any* valid option ROM BIOS included (not just XTIDE Universal BIOS) and even combine several option ROM BIOSes as long as their total combined size do not exceed 20 KB.

For example, I created a BIOS with a 10 KB r621 XUB at segment F400h (XUB obviously needs to be configured, padded and checksummed with XTIDECFG before doing this);
Code:
copy/b FIRST.BIN+FF.BIN+FF.BIN+ide_atl.bin+FF.BIN+FF.BIN+FF.BIN+PTCHLAST.BIN C1ROMXUB.BIN

The included XUB is just a regular Large AT-build configured to have one standard 16-bit controller that do not use IRQs (for maximum performance under DOS). You might want to do additional configuration changes such as changing the boot menu color scheme or disabling slave drive detection (assuming there's no room for two drives in these machines). Or you might want to create an entirely new custom BIOS with only the modules you want/need some time in the future.

All of this plus the updated IDA Pro database (reflecting the original BIOS) is included in the attached zip-file.

I hope it works this time and apologies for the extremely long wait.
 

Attachments

  • C1ROMXUB.ZIP
    205.3 KB · Views: 5
Hello! Just came back to check the thread and was surprised to see an update!

So. I took your 64K ROM file from the zip file and loaded it into my EPRROM programmer software. Split it using it's feature to make two 8 bit chips. Programmed. Installed the ROMs and nothing happened on power up. Screen doesn't wake up. Reversed them just in case. Sockets are labelled 39 and 40 on the PCB, so I keep that nomenclature.

Just to be sure I didn't mess up the split, here are the read backs from the two chips after I split it. Also in this directory are the two original reads I did years ago that is probably the basis for the original edits.


Thanks for your help in this!
 
@Krille thank you very much for posting this - @sarawill has very kindly just leant me a working C1 as it happens and the checksum is a very interesting finding.

@telemonster thanks for testing. Please post back any findings; I will do likewise.
 
Quick update. I was able to get identify data from the attached device and the busy LED works ok.

Please note that:
  1. The machine needs to be configured as HDD model (switch set 2, under the keyboard, set 1=OFF and 2=ON).
  2. In the setup utility (CTRL-ALT-S to access), set 1st floppy to 720K; 2nd floppy not installed; 1st and 2nd HDD to not installed.
  3. On the Lo-tech card, set JP1=Closed, JP2=Closed, JP3=2-3.
 
Using @dmac's Optromloader, I've got the C1 booted from the adapter and it passed a 16MB 10-pass pattern test.

If we can figure out the ROM patch this one should be good to go.
 
I took the BIOS and cut it to a pair of chips...Upon power on it lets out 5 beeps.

This is checksum error. As Krille was able to determine, the original ROM checksums different parts of the ROM in specific ways. Hence, the first attempt at the ROM patch, when this wasn't known, didn't work.

Also note, there was no beeps or anything on this set. I think the prior edit had some kind of post beeping going on.

I took a look at you ROM images. They are each only half programmed (to 16KB). Since the first instruction executed is at FFFF0h, there is nothing for the CPU to do and hence nothing happens.

Quick update. I was able to get identify data from the attached device and the busy LED works ok.

Please note that:
  1. The machine needs to be configured as HDD model (switch set 2, under the keyboard, set 1=OFF and 2=ON).
  2. In the setup utility (CTRL-ALT-S to access), set 1st floppy to 720K; 2nd floppy not installed; 1st and 2nd HDD to not installed.
  3. On the Lo-tech card, set JP1=Closed, JP2=Closed, JP3=2-3.

To add to this - this is now working!

Using the new ROM provided by Krille, the machine boots right up from the controller. I've tested microdrive and a CompactFlash card via a suitable adapter, but it should work with any ATA device - it is a full 16-bit controller. Performance wise, it does about 2MB/s read and 1.5MB/s write, 100 IOPS, using CompactFlash.

I've updated the wiki here with the correct card and machine jumper/switch settings, as well as the working C39/C40 binaries for download.

Thank you to everyone that has contributed to this project, and especially @Krille for the fantastic work on the BIOS and @sarawill for lending me a working C1.
 
Back
Top