Hallo allemaal, My CBM 9060 story so far (from now on: 9090 is meant as well). I managed to repair one board, good news so far. The other one keeps flashing that the ZeroPage RAM is bad but exchanging the 6810's doesn't solve the matter :( It seems that I have to throw in some havier debug stuff. I have uploaded the latest diassembly: http://www.baltissen.org/zip/9060.zip And now the things I found and/or problems I still have: Disk Controller: - The disk info is hard coded: 4/6 heads, 152 tracks/side, 32 sectors/track. - The various ZP adresses use in my listing coded Z_xx do something but I wasn't able yet to find out what exactly. - Z_2D..2F aren't used. - Z_30 is filled but never used. - Z_31 and higher aren't used in the program. But Stack starts already at $7F. - I have no idea what the routine at P_FDB2, and in particular, P_FDE8 do. P_FDE8 is used in the routine starting at A_FC4E which I don't understand as well. - FYI: $0400 and higher is common RAM with the Bus Controller, both Controllers can read and/or write the same RAM. So it is possible that one Controller only writes to it and the other only will read it. - $0499 is used to fill a command byte for the SASI controller but I cannot find the place where it is filled. - $04A3 is used but filled where ??? - Less important: SecStatByte/$04A5 is filled but the info isn't used. - I cannot find the origin of the various SASI commands found here. Like: - $C0 (= position head in 8250) -> $01 SASI command = recalibrate unit. - $B4 -> $C0 = ??? - $A8 -> $00 = send zero status - $C4 -> $0E = Vendor unique Bus Controller: - I was able to use a lot of the comment for the 8250 in the 9060 as well. - I wasn't able to find the verify part (not to be mixed up with the VERIFY command). Probably not needed. - With exception of the Backup function all of the second drive is still present. - $10B3 is used but filled where ??? - The use of the Write protection flag puzzles me. It is ONLY filled with the value 1 at startup. At InitDrive2 it is changed to zero: lsr WPWS0B,X ; disk changed? bcc A_C87A ; no, -> done When loading the BAM, it is set to zero as well. But during the WaitLoop (= idle phase) it is checked to execute, or not, a subroutine. IMHO it never will be executed anymore after at least the first disk access. - At A_FC06 the Disk Controller generates some error codes using some tables. These codes pop up again at "Prepare error number and message" (PrepErrMsg2). At A_EFEC the value $20 is added and the result is decreased twice. This value is used for the message generator. The original value $01 would end up as $1F but that doesn't exist ??? Same for $09/$27. Remark: add 'IMHO' to all sentences. -- ___ / __|__ / / |_/ Groetjes, Ruud Baltissen \ \__|_\ \___| http://Ruud.C64.org Message was sent through the cbm-hackers mailing listReceived on 2011-01-30 17:00:13
Archive generated by hypermail 2.2.0.