• Please review our updated Terms and Rules here

Powertran Cortex Issues

at the moment I'm not certain I have made a boot disk.... or have any combination of things that might be bootable.
I fail at the first hurdle. I can load the SAFORMAT util via the serial port, but no matter which options I choose it errors without any indication it's trying to format anything. The disk spins and locks but no head movement it just errors. This is the same behaviour with the Gotek.
So I thought I'd try and boot from the Gotek as I can set that as an 80track DD DS drive to match most of the disk images, but I get the same behaviour that I do with the floppy drive with any disk in when trying to boot, so it behaves like there is no valid track0.
I also thought I'd test the drive independently with a greaseweazle on my PC, where I can read and write to them. I picked the MDEX boot loader single density disk image as although the bin file is 321k there's only about 80k of data on it and used the greaseweazle (set to 40 tracks single sided) to burn this image to a floppy. I then read back the disk and verified the image compared to the original and it looked the same, just less empty space at the end of the disk image. It's entirely possible that burning an 80 track image to a 40 track disk just won't work in the Cortex, even if it reads back at 40 tracks externally, but I was running out of things to try.
I don't have a CDOS cassette image to try anything with, only the SAFORMAT one in the PC coms util. I would just concentrate on that refusing to format, but it's a pain in the ass to type in the code to redirect the cassette data to the serial port each reboot :p
I have no idea if this cortex actually ever fully worked, as it was one of two and the previous owner had passed. Some of the build was incomplete like the front LEDs on the case, no bleeper, no fan and a couple of missed solder points, but I'm currently going on the assumption that it was all working and in use even if there were some slightly unfinished bits, as the reset and warm start were redirected to buttons mounted to the side of the keyboard, which would be an odd thing to do if you weren't fed up with reaching round the back all the time.

For reference, the current Gotec config I've been trying is:
[CORTEX]
mode = mfm
rpm = 300
rate = 250
cyls = 80
heads = 2
secs = 16
bps = 256
interleave = 1
skew = 0
id = 0
index-suppression = no
step = 10
settle = 10
motor-delay = 0
 
"The disk spins and locks but no head movement it just errors. This is the same behaviour with the Gotek."
1). If you move the drive head away from Track 0, does the drive return the head to Track 0 before any error, or does it just error?
2). Obviously you won't be able to try that with the GoTek, but is there any way to enable any debug information on it?
3). Can you see the correct activity and levels on all of the Disk Interface connections? See the attached schematics. (The Original Cortex schematic has no pin numbers, but beware the Cortex 2 circuitry may be slighly different but has pin number appended). Sorry if I'm showing a granny how to suck eggs...
4). Can you see the corresponding levels changing all the way through from the drive to the FDC 9909? This was when I found that my WRITE GATE signal wasn't making it off the motherboard.

My drives are configurable to work as 40 or 80 track so I'll try out formatting the 40 track option and see if I can put the 80 track image on it to see how it behaves.
 

Attachments

"it's a pain in the ass to type in the code to redirect the cassette data to the serial port"
You are using the PC Comms Util 1v3 ? When you have clicked the "Init" button for 300 baud, you then click on "Send Command File" and it enters all those commands for you? Or have I missed the point?
 
1). If you move the drive head away from Track 0, does the drive return the head to Track 0 before any error, or does it just error?
Might be worth trying that with BOOT command from BASIC? That would prove at least some motherboard<->floppy drive comms without the need to have a bootable disk?
 
1). If you move the drive head away from Track 0, does the drive return the head to Track 0 before any error, or does it just error?
2). Obviously you won't be able to try that with the GoTek, but is there any way to enable any debug information on it?
3). Can you see the correct activity and levels on all of the Disk Interface connections? See the attached schematics. (The Original Cortex schematic has no pin numbers, but beware the Cortex 2 circuitry may be slighly different but has pin number appended). Sorry if I'm showing a granny how to suck eggs...
4). Can you see the corresponding levels changing all the way through from the drive to the FDC 9909? This was when I found that my WRITE GATE signal wasn't making it off the motherboard.
1) with "SAFORMAT" there is no head move, just drive lock>drive spin>error>drive stop>unlock
with "BOOT" the head does move to track 0 before jumping 0 to 2 and back.
2) Fairly sure there is some form of diag but I've never used it, will have to read up
3) I've traced back from the floppy cable pins back and also traced most of those signals back to the tmx9909
The only oddities I found were:
the drive select numbering seems to be backwards with drive 4 being drive 1 and 1 being 4, but selecting drives works fine and I can select, and fail to boot or format, from drive 0 or 1 without issue. I've not looked into what ic85 is actually doing.
pin 18 shows as both head load and direction. directions says 8" only, but this is connected to the 5.25" headers. Pin 10 of ic83 for headload is connected to pin 18 of the 8" header but not the 5.25 so I have no headload on the 5.25"
I did not have a link from pin 14 of the 8" to 32 of the 5.25" for SIDE, but I do now.
4) I believe I have traced everything back and it looks ok. I do have a data logger, so I could hook that up and record what everything is doing if I can find enough clips
and regarding the pc coms util ... I only have the version with an init button that you then have to manually type in a load of MWD[01C8H] = 08300H commands on the (arguably one of the worst keyboards I've used) keyboard before doing LOAD "SAFORMAT" and sending the cassette image.
 
2) With respect to the Gotek; Have a look at the Github Flashfloppy repository, specifically the "Raise an Issue" page. You can ask for help there. I note there is an entry asking about the TI99; I don't know how similar it is to the Cortex disk interface, but the response from the author is extensive, so maybe the Cortex may not be straightforward either?
3) OK it looks as though you have functioning Logic/hardware so good news there. If the head moves back to Track 0 after the Boot command then the FDC is controlling the drive correctly, proving at least those signals work.
4) You are running 1v0 of the PC Comms Util. I've attached the latest version of PC Comms Util, (that I'm aware of) 1v3. There are full instructions on how to use it but, when you click "Send Command File" it echoes the contents of the "commands.txt" file to the Cortex. This sets up the RS232 interface for use easily, to use 19,200 baud instead of 300 baud and load programs from the RS232 interface instead of the Cassette interface. It also includes the latest versions of all the files.
I'm sorry I haven't managed to experiment with my drives on 40 Track yet; I'm hoping to today.
 

Attachments

I've got a 5.25" disk formatted to 40 Track, SSSD which Boots on my system if you'd like it to try?
lovely, yes please.
Had a quick look over that Gotek ti99 thread, if nothing else that's a nice idea of using a greaseweazle to pull an image off the physical drive and then also off the Gotek and look at the difference in the two images to identify if the Gotek is responding correctly.
Thanks for the PC Comms Util, yea I didn't have that version. Should save some time :)
 
I've just had a go with that v1.3 of the coms util and not only is it sooooooo much better, but the version of saformat is different. On this version I'm getting exactly the same behaviour as "BOOT" so now if I do move the head the format process returns to track 0 before displaying "Unable to Format Track" so that's essentially the same issue where it isn't happy with the disk for one reason or another..... I may get some time tomorrow to have a further look but with the scope during boot on the TMX9909 I can see -
The index pulsing in time with the rotation
TCK00 pulsing with the head move
DRVRDY going low with the motor startup
DIR pulsing with the head move
STEP changing with the head move
Data present on RDATA
and I did check CS again as I couldn't initially see it enabling the chip (which it clearly was), and I just had the scale wrong, so I can see the enable pulses.
So it all looks good from what my amateur eyes can see.... apart from the not working bit
 
Glad it's improved your usability, even if it hasn't cured the problem. Your 40 Track Single Side Single Density CDOS floppy is in the post so should arrive in a few days.
Can I confirm you have the Termination resistors in only on the last physical drive on the cable please?
Another question; is the floppy you are trying to format a High Density disk? It is possible that the hardware is working properly and it is just that the disk is physically unable to support being formatted to Single Density. If this is the case the floppy I've posted you might change the outcome. Alternatively do you have another disk that is definitely Single Density specification? Just a thought.
 
I have the disk..... and it may point at a cortex/configuration issue ..... maybe :)
If I boot off the disk (as long as I have both the size and density jumpers fitted) I get a new error!!!
Rather than a continued loop of it trying to boot it seems to read track 0 and then display ** Controller error **
I've not got much time to "play" today, but I did have a quick go at imaging the disk onto my pc through the greaseweazle and I can read it, and see the data, such as the "controller error" text, so its possible that's coming off the floppy by the looks of it... unless the same error message exists in the standard cortex roms. I can also write the image back to a new disk and have the same "controller error" message when booting from that. so I'm fairly convinced my drive and disks are at least functional, and I now have a copy of the disk you sent.
 
Glad you got it :) and that it's made some difference. I hope the ** Controller error ** isn't due to my messing something up, but I didn't get that message. I hope it hasn't been corrupted during its progress through the postal system machines. I wonder if the message is being caused by the disk system actually being able to read the disk, even if it might be corrupted? Glad you could copy my disk, so you can experiment with the copy.
I'll be interested to see how you get on with the GoTek with this copy too.
 
Plagued - you've probably already reseated the 9909 floppy controller, but take a look at the 9911 DMA controller and its socket as well. It's possible that the floppy side is working fine but can't transfer the data to memory using DMA. A clutching-at-straws comment but it will only take a minute.
 
Good point! I re-socketed the entire board and cleaned (as best I could) most of the chips that had been tarnished from the resident mouse, but it's one of the chips I've not fully traced or probed. I'd actually removed the DMA for some of my other diagnosis when it was mostly dead as it's not needed to boot (it is back in now), so I'd kind of forgotten that anything actually uses it :)
I'll do some digging.
I did give the raw flux image a try on the gotek with a basic config and it did boot up to the point of the same "controller error" so it does look like the gotek will work, it may just need a more complete config to boot a standard disk image.
 
hmm, doesn't seem to be the DMA.
I can see everything happening as per the manual with the CPU being placed on hold and then data being sent down the bus. And everything is connected to the right places. The only odd thing I have noticed is that D1 seems to be held high when idle, which is the exact opposite of all the other data lines. It still pulls low fine, it's just odd that all the other data lines go from low and get pulled high. I've checked everything over and it looks fine, and it would be odd if that was causing an issue with booting from floppy as it's like that across everything on the bus.
 
hmm, doesn't seem to be the DMA.
I can see everything happening as per the manual with the CPU being placed on hold and then data being sent down the bus. And everything is connected to the right places. The only odd thing I have noticed is that D1 seems to be held high when idle, which is the exact opposite of all the other data lines. It still pulls low fine, it's just odd that all the other data lines go from low and get pulled high. I've checked everything over and it looks fine, and it would be odd if that was causing an issue with booting from floppy as it's like that across everything on the bus.
I've done a bit of digging into the boot sector on the floppy. I think it is reading that OK as that is where the text for the "Controller error" is coming from. If you can try the following:
(1) Do a reset, then BOOT from Fixit's boot disk. You say it comes up with "Controller error".
(2) Type MON<Enter> to enter the Monitor.
(3) Type MF140<Enter> ("0" is a zero). It will automatically show a space after the "M". It should display "F140=XXXX". What value do you see for XXXX? This is the FDC status register and it should be FF00, but I think you'll see something different. We can look up the status bits in the FDC manual which may give us a clue as to the problem.

Might also want to try bypassing the FDC status register check and see if you get the CDOS boot message:
(1) Do a reset then BOOT.
(2) Type MON<Enter> to enter the Monitor.
(3) Type the following - various things will display but just type the characters ("0" is a zero): M6128<Enter>F140<Enter>
(4) Type the following - various things will display but just type the characters ("0" is a zero): RF0DC<space>6120<Enter>
(5) Type the following - various things will display but just type the characters: EN<Enter>
Does it display anything exciting?
 
hmm, doesn't seem to be the DMA.
I can see everything happening as per the manual with the CPU being placed on hold and then data being sent down the bus. And everything is connected to the right places. The only odd thing I have noticed is that D1 seems to be held high when idle, which is the exact opposite of all the other data lines. It still pulls low fine, it's just odd that all the other data lines go from low and get pulled high. I've checked everything over and it looks fine, and it would be odd if that was causing an issue with booting from floppy as it's like that across everything on the bus.
When executing one of the external instructions (IDLE, RSET, CKON, CKOF, LREX) the 9995 outputs a code on D0 - D2 which indicates the instruction. For IDLE, D1 = 1, and D0 and D2 = 0. So it is working correctly. ;-)
 
This is what I get from those commands.
I did have a quick look through the tms9909 controller manual and there's status codes on page 37, but I'm not sure what FFC7 equates to.
Also regarding D1, thanks for that! makes perfect sense now you've said it. I probably should have twigged as I've got a breadboard next to the cortex I chucked together to test NOP codes on some Chinese 6502s :)
There is one caveat that this is booting from the gotek, as for some reason my floppy drive now just gives a "system error" with both the original and copy of the floppy disk, so it's got grumpy about something.
1000019497.jpg
 
Hmmm ... OK, I'll do a bit more delving into the boot code. Pretty much the first thing it does is check the FDC status byte after loading ... and you're getting FFC7, and its only the FF bit that matters and FF indicates 'success'. So it looks like the error is coming from further along in the code somewhere.

When booting from floppy and you get "system error" - does it hang at that point or can you get into the monitor and do the M F140?
 
Thanks.
It hangs. just double checked, I get "Fatal System Error" almost immediately on reading track 0, but it is being caused by the data on the first track or two as a blank floppy searches away as normal. All I can do is reboot once the error is up.
I have been poking at things and reseating ICs looking for issues so it's possible I've upset something, but it's odd that the gotek it still "booting". It's quite possible that the drive has developed an issue and the second drive I have was far more mouse molested than the one I've been using, so I've not started trouble shooting it (won't spin down or unlock unless it's connected to the other drive and doesn't read the disk I have) as I was hoping to run one physical drive and one gotek if I could get everything working, so the plan was to leave the other floppy broken :p
 
Back
Top