Jump to content
IGNORED

Disk Controller not working.


LASooner

Recommended Posts

I just got a TI disk controller on Ebay to replace the one I ruined. Assuming the seller is honorable in his evaluation that the controller "works perfectly", I need to figure out what could be wrong. My previous controller worked fine with my PHP 1250 drive and my Lothartek HXC, I plugged them both in initially, and when I start up the system with XB 2.7 and try to list a directory, the TI drive spins up nothing is displayed and then it goes back to the main menu. Same with the HXC. I went into disk manager and it claims that neither drive is initialized which I know is not correct. I tried just one drive each, same result. I tried initializing a new disk, and got disk error 31.

 

Is there something I might be missing, or is this controller most likely hosed?

 

Any tests that you recommend I try?

 

 

Link to comment
Share on other sites

I just got a TI disk controller on Ebay to replace the one I ruined. Assuming the seller is honorable in his evaluation that the controller "works perfectly", I need to figure out what could be wrong. My previous controller worked fine with my PHP 1250 drive and my Lothartek HXC, I plugged them both in initially, and when I start up the system with XB 2.7 and try to list a directory, the TI drive spins up nothing is displayed and then it goes back to the main menu. Same with the HXC. I went into disk manager and it claims that neither drive is initialized which I know is not correct. I tried just one drive each, same result. I tried initializing a new disk, and got disk error 31.

 

Is there something I might be missing, or is this controller most likely hosed?

 

Any tests that you recommend I try?

 

 

Have you tried to format an old diskette or a NOS one. Are you using a higher density image in the HxC than the controller can utilize.

Here is some info off the net I pulled:

The first digit (x) indicate which I/O operation caused the error.

: : 0-open

: : 1-close

: : 2-input

: : 3-print

: : 4-restore

: : 5-old

: : 6-save

: : 7-delete

: : the second value (y) indicate what kind of error occured

: : 0-Device name not found(Invalid device or file name in DELETE,LIST,OLD,SAVE command)

: : 1-Device write protected(attempting to write to a protected file)

: : 2-Bad open Attribute(one or more OPEN option are illegal or do not match file characteristics

: : 3-Illegal operation(Input/output command not valid)

: : 4-Out of space(attempting to write when insufficient space remains on the storage medium)

: : 5-End of file(attempting to read past the end of a file)

: : 6-Device error(device not connected,or is damaged. this error can occur during file processing if an accessory device is accidentally disconnected while the program is running)

: : 7-File error(the indicated file does not exist or the file type;program file or data file does not match the acces mode.)

Link to comment
Share on other sites

This is not the correct table. In fact, there is no documentation of the error codes from the disk controller card on low-level operations that I know of. I found these error codes in the annotated disassembly on Thierry Nouspikel's website (http://www.unige.ch/medecine/nouspikel/ti99/download.htm#disass ), also comparing to the documentation of the FD1771 chip.

 

11 = SEEK ERROR

22 = CRC ERROR

31 = RECORD NOT FOUND

33 = LOST DATA

34 = WRITE PROTECT

etc.

 

RECORD NOT FOUND means that during the verify phase of a write sector operation, the DAM (Data Address Mark) could not be found. This is the mark on the disk after which the sector contents follow.

 

This can be caused in many ways, but since you said this appears with the HxC as well, the physical drive does not seem to be the culprit. The DAM was never written, or it cannot be read again.

Link to comment
Share on other sites

This is not the correct table. In fact, there is no documentation of the error codes from the disk controller card on low-level operations that I know of. I found these error codes in the annotated disassembly on Thierry Nouspikel's website (http://www.unige.ch/medecine/nouspikel/ti99/download.htm#disass ), also comparing to the documentation of the FD1771 chip.

 

11 = SEEK ERROR

22 = CRC ERROR

31 = RECORD NOT FOUND

33 = LOST DATA

34 = WRITE PROTECT

etc.

 

RECORD NOT FOUND means that during the verify phase of a write sector operation, the DAM (Data Address Mark) could not be found. This is the mark on the disk after which the sector contents follow.

 

This can be caused in many ways, but since you said this appears with the HxC as well, the physical drive does not seem to be the culprit. The DAM was never written, or it cannot be read again.

Okay thanks for catching this, the site I pulled from is https://www.99er.net/wwwboard/messages/56.html and it is very old.But since it has been since before then that I have had any dealings with the codes on disks controller, I thought it was correct.

Link to comment
Share on other sites

The table you posted is not wrong or outdated, but it is targeted at a higher layer, related to operations like READ, WRITE, LOAD etc. from a program, with 8 different error types. The error codes that are shown by the Disk Manager in the above situation are codes that relate to controller operations like seeking, waiting for data marks etc., so they cannot be interpreted by the high-layer table. Also, those error codes may be specific to the disk controller (because they will eventually be converted to the generally ued high-layer codes).

  • Like 1
Link to comment
Share on other sites

The table you posted is not wrong or outdated, but it is targeted at a higher layer, related to operations like READ, WRITE, LOAD etc. from a program, with 8 different error types. The error codes that are shown by the Disk Manager in the above situation are codes that relate to controller operations like seeking, waiting for data marks etc., so they cannot be interpreted by the high-layer table. Also, those error codes may be specific to the disk controller (because they will eventually be converted to the generally ued high-layer codes).

Okay, I see these at the end of the manual.

post-41593-0-99994400-1473777778_thumb.jpg

Link to comment
Share on other sites

Ah, OK, then there is indeed a table, but it is not complete. I gathered some information from the disassembly here:

 

http://www.ninerpedia.org/index.php?title=Technical_details#Error_codes_from_the_disk_controller_card

 

(still preliminary, I'd have to dig a bit deeper to make sure)

 

 

P.S.: Correcting myself, error 31 means "header not found". When you want to write to a sector n, the controller makes the floppy head move to the desired track, then reads the sector headers as they are passing by. When it finds the header, it pauses for a short moment until the "write splice" position of the sector is reached, then opens the write gate, and the controller writes the data address mark, the sector contents, and the CRC. Error 31 occurs when that desired sector header does not show up; most likely because it was never written or completely erased. In most cases, the header is there, but damaged, which would result in a CRC error.

 

Concerning the initial question, it could happen when the read data, write data, or select lines to the floppy are broken. This can only be checked with another floppy disk that is guaranteed to be working, or with another drive that is working.

Edited by mizapf
  • Like 1
Link to comment
Share on other sites

Ah, OK, then there is indeed a table, but it is not complete. I gathered some information from the disassembly here:

 

http://www.ninerpedia.org/index.php?title=Technical_details#Error_codes_from_the_disk_controller_card

 

(still preliminary, I'd have to dig a bit deeper to make sure)

 

 

P.S.: Correcting myself, error 31 means "header not found". When you want to write to a sector n, the controller makes the floppy head move to the desired track, then reads the sector headers as they are passing by. When it finds the header, it pauses for a short moment until the "write splice" position of the sector is reached, then opens the write gate, and the controller writes the data address mark, the sector contents, and the CRC. Error 31 occurs when that desired sector header does not show up; most likely because it was never written or completely erased. In most cases, the header is there, but damaged, which would result in a CRC error.

 

Concerning the initial question, it could happen when the read data, write data, or select lines to the floppy are broken. This can only be checked with another floppy disk that is guaranteed to be working, or with another drive that is working.

Apparently, his disks were readable till he messed up his original controller and bought a new one, and the HxC can't be read either. I would say a malfunction on the card, like a defective disk controller chip or similar, can't read that information, so gives the error.

Link to comment
Share on other sites

Apparently, his disks were readable till he messed up his original controller and bought a new one, and the HxC can't be read either. I would say a malfunction on the card, like a defective disk controller chip or similar, can't read that information, so gives the error.

I am getting ready to start learning the in's and out's of a disk controller, as I am wanting try to upgrade the controller chip on the TI to a double density. I believe the fundamentals are already in place, just need to make hardware changes. I just need to learn how everything is structured and see if the DSR of the TI can be changed, or a modified copy of the Myarc or Corcomp DSR's to utilize the changes. I purchased some 2797 disk controller chips from poland and when I get back from a trip to Ohio, next week I am going to be working with a defunct TI controller and a Percom controller, to start with. I'll bet I learn a lot about error messages then :(

Edited by RickyDean
Link to comment
Share on other sites

I am getting ready to start learning the in's and out's of a disk controller

 

If you can read C++, you could consider to look at the MAME source codes (wd_fdc.cpp, hdc92x4.cpp, the latter one written by me ... and better commented :) ).

Edited by mizapf
Link to comment
Share on other sites

- you could connect the HxC to a PC, to see if it is still OK. Maybe the same for the floppydrive

 

- maybe something on the PEB-Bus ? Are other cards than the FD-controller running good, ie a 32KB ?

 

- maybe the contacts on the bus are dirty (clean them, and/or try other slots, as told before)

 

maybe there is a problem on the TI´s sideport ? or the FlexCable´s pins or a resistors gone (if present :)

 

Do you hava a spare console or PEB for a test ?

 

Maybe a double cable-issue, or a double controller issue.....I don´t believe that, but who knows....

Link to comment
Share on other sites

I'd like to reiterate the drives and disks I'm using worked fine with the previous controller. starting to think this one is bad too

Instead of guessing, PM me and I will send you a TI Floppy Controller, without a shell to test with, known to be working. If that fixes the problem(and I believe it will), then the Ebay controller is bad. Cover the cost of shipping back and forth. Let me know, I will be leaving for Dayton Ohio all next week, so I would need to get it into the mail by Saturday. Ricky

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...