 |
| View previous topic :: View next topic |
 |
 |
atarulum Guest
|
Posted: Sun Nov 25, 2007 8:41 pm Post subject: Bug part of MSX2/MSX2+/MSXturboR TC8566AF |
|
|
At first I explain it from MSX2 FS-A1F / FS-A1FM use.
MSX2 FS-A1F / FS-A1FM had FDC(TC8566AF) with the same DISK BASIC ROM, but did it and I used it I used KSAVER.COM and the tool which said in that I cannot simplify even that I accessed an input/output register with the actual machine, and to draw out only a DISK BASIC part or to confirm the data of the input/output part.
I compared on emu with an actual machine.
With the FS-A1F / FS-A1FM actual machine
Part of 7FF0-7FFF (BFFF - The BFFFh) is as
FF FF FF FF FF FF FF FF FF FF 80 00 FF FF FF FF
On Emulator as follow.
01 23 FF FF 80 FF FF FF FF FF 80 FF FC FC FF 3F
Perhaps I think that you may have done so MSX2/2+/MSXturboR of TC8566AF to let being common support, but it does not seem to be same
as many actual machines.
So I wish you fix this problem about this part.
The next is on FS-A1FX/WX/WSX, Sanyo Wavy PHC-70FD/70FD2
On actual machine, the part of 7FF0-7FFF (BFFF - BFFFh) is as
FF FF FF FF FF FF FF FF FF FF 80 00 FC FC FF 3F
On Emulator as follow
01 23 FF FF 80 FF FF FF FF FF 80 FF FC FC FF 3F
It's similar more somehow than the MSX2 part
But on 7FF0-7FF9(BFF0-BFF9) , it is necessary to fix.
With the FS-A1ST / FS-A1GT actual machine in the case of 2
First in MSX-DOS 2.XX (R800 Mode) as follow.
00 33 FF FF 80 00 FF FF FF FF FF FF FC FC FF 3F
in MSX-DOS 1.XX (Z00 Mode) as follow.
03 33 FF FF 80 00 FF FF FF FF FF FF FC FC FF 3F
However, in the case of Emulator
In MSX-DOS 2.XX (R800 mode)
on 7FF0-7FFFh as follow
01 33 FF FF 80 FF FF FF FF FF 80 FF FC FC FF 3F
on BFF0-BFFFh as follow
02 33 FF FF 80 FF FF FF FF FF 80 FF FC FC FF 3F
In MSX-DOS 1.XX (Z00 Mode)
on 7FF0-7FFFh as follow
01 33 FF FF 80 FF FF FF FF FF 80 FF FC FC FF 3F
on BFF0-BFFFh as follow
02 33 FF FF 80 FF FF FF FF FF 80 FF FC FC FF 3F
This is similar more somehow than the MSX2 part, too, but one part of the parts of the input/output register is different from the actual machine for the time being.
In my opinion,
It is necessary to let you distinguish an input/output register record part by MSX2/MSX2+/MSXturboR in TC8566AF a little more. |
|
| Back to top |
|
 |
dvik
Joined: 20 Mar 2004 Posts: 2129 Location: San Diego
|
Posted: Mon Jan 07, 2008 8:42 pm Post subject: |
|
|
I looked a little bit at this and here is what I know:
The FDC register 4 which is in the emulator is mirrored on address 0x0A, is connected to either address 0x0A (MSX2 computers) or 0x04 (Turbo-R) but never to both. As far as correctness goes, this is of course wrong but functionality is ok anyways because the disk bios only reads one of the two depending on model.
Register 0x05 and 0x0B is another FDC register which probably is only connected to one of the two depending on model. I also noticed that the value of this register is different than what you found but that needs to be investigated more (since its an FDC register the value depends on the state of the FDC).
Register 0x01 is the status register and some bits in the status register are known but I'm not sure if all are. I need to look at this closer too.
All of the other registers are unknown, and it needs more investigation to emulate these correctly. |
|
| Back to top |
|
 |
atarulum Guest
|
Posted: Tue Jan 08, 2008 12:34 pm Post subject: Information of FDC of Panasonic (TC8566AF) |
|
|
MSX2/MSX2+'s TC8566AF is accessed through 7FF8-7FFB, except in MSXturboR
where it is accessed through 7FF2-7FF5. TurboR use also 7FF0 for bank switching
of DOS2 rom (read/write), and 7FF1 for disk change check (read only).
Here is FDC's I/O data of TC8566AF (Panasonic/Sanyo MSX FDD units)
Except external FDD of FS-FD1A, all Disk Kernel is placed on Slot 3-2 (4000 - 7FFFh)
(This is also mirrored at BFF8 ~ BFFBh for MSX2 / MSX2+, BFF1 ~ BFFF5 for MSXturboR)
*Type / Model
PA1 : FS-FD1A (External FDD Unit)
PA2 : FS-A1F / FM (MSX2)
PA3 : FS-A1FX / WX / WSX (MSX2+)
PA4 : FS-A1ST (1st/2nd) (MSXturboR)
PA5 : FS-A1ST (3rd) / FS-A1GT (MSXturboR)
*Work Area : 26byte / 5KB (for Format)
*Media : F8 ~ FFh (1:F8h / 2:F9h)
*Sub Routine Address in Driver (When PA4 / PA5 is in MSX-DOS 1 Kernel)
1) DSKIO (Disk I/O)
7495h (PA1 / PA2 / PA3 / PA4 / PA5 / PA6)
2) DSKCHG (Disk Change)
7809h (PA1) / 77E4h (PA2) / 77F3h (PA3) / 77CAh (PA4) / 77CBh (PA5)
3) GETDPB
7848h (PA1) / 7823h (PA2) / 7833h (PA3) / 780Ah (PA4) / 780Bh (PA5)
4) CHOICE
7863h (PA1) / 783Eh (PA2) / 784Eh (PA3) / 7825h (PA4) / 7826h (PA5)
5) DSKFMT (Disk Format)
7C81h (PA1) / 7C5Ch (PA2) / 7C80h (PA3) / 7C57h (PA4) / 7C58h (PA5)
6) MTROFF (Motor OFF)
7770h (PA1) / 774Ch (PA2) / 775Ah (PA3) / 7746h (PA4) / 7747h (PA5)
7) OEMSTA
78A0h (PA1) / 787Bh (PA2) / 788Bh (PA3) / 7862h (PA4) / 7863h (PA5)
INIHRD
7733h (PA1) / 772Ah (PA2) / 7738h (PA3) / 7724h (PA4) / 7725h (PA5)
9) DRIVES
77A1h (PA1) / 7783h (PA2) / 7792h (PA3) / 777Ah (PA4) / 777Bh (PA5)
A) INIENV
77CCh (PA1) / 77AAh (PA2) / 77B9h (PA3) / 77A1h (PA4) / 77A2h (PA5)
*I/O Port
1)PA1-PA2 (for FS-FD1A / FS-A1F / FS-A1FM)
7FF8h : Write : Extended Register for FDC 0 -- 0 / 0 / MEN1 / MEN0 / 0 / -FRST / 0 / DSA /
7FF9h : Write : Extended Register for FDC 1 -- 0 / 0 / C4E / C4 / SBME / SBM / TCE / FDCTC /
7FFAh : Read : Status Register
7FFBh : Read & Write : Status Register
For example 7FF0 - 7FFFh is shown if the user dumped this area by KSAVER.COM / SAVEROM.COM
--7FF0 : FF FF FF FF FF FF FF FF FF FF 80 00 FF FF FF FF
2)PA3 (for FS-A1FX / FS-A1WX / FS-A1WSX)
7FF8h : Write : Extended Register for FDC 0 -- 0 / 0 / MEN1 / MEN0 / 0 / -FRST / 0 / DSA /
7FF9h : Write : Extended Register for FDC 1 -- 0 / 0 / C4E / C4 / SBME / SBM / TCE / FDCTC /
7FFAh : Read : Status Register
7FFBh : Read & Write : Status Register
For example 7FF0 - 7FFFh is shown if the user dumped this area by KSAVER.COM / SAVEROM.COM
--7FF0 : FF FF FF FF FF FF FF FF FF FF 80 00 FC FC FF 3F
(7FFC - 7FFFh is always shown as FC FC FF 3F on FS-A1FX/WX/WSX machine just like patch method(?))
3)PA4-5 (for FS-A1ST / FS-A1GT)
7FF1h : Read : Status of FDD -- / - / - / MC1 / MC0 / - / - / - / - /
7FF2h : Write : Extended Register for FDC 0 -- 0 / 0 / MEN1 / MEN0 / 0 / -FRST / 0 / DSA /
7FF3h : Write : Extended Register for FDC 1 -- 0 / 0 / C4E / C4 / SBME / SBM / TCE / FDCTC /
7FF4h : Read : Status Register
7FF5h : Read & Write : Status Register
For example 7FF0 - 7FFFh is shown if the user dumped this area by KSAVER.COM / SAVEROM.COM
--7FF0 : 00 33 FF FF 80 00 FF FF FF FF FF FF FC FC FF 3F (MSX-DOS2 Mode)
--7FF0 : 03 33 FF FF 80 00 FF FF FF FF FF FF FC FC FF 3F (MSX-DOS1 Mode)
(7FFC - 7FFFh is always shown as FC FC FF 3F on FS-A1ST/GT machine just like patch method(?))
(7FF0 is always shown as Bank No for MSX-DOS 2 Kernel.)
MEN1 / MEN0 -- Motor Enable 1/0 (1 is ON / 0 is OFF)
-FRST -- Inversion of the Siginal for FDC Reset (0 : Reset)
DSA -- Drive Select (0 : Drive 0)
C4E -- Enable to write to C4
C4 -- READY absolutely (The input of FDC is ready if Drive is Not Ready.)
SBME : Enable to write to SBM
SBM : Standby Mode (Non Standby status if 0)
TCE : Enable to write to FDCTC
FDCTC : Ternimal Count
MC1 / MC0 : For detection of exchanging media
* Work Area
+00H,1 -The state of the motor (00H:Stop01H~FEH:WaitFFH:Work)
+01H,1 - Is the media effective? (Drive 0)
+02H,1 - Is the media effective? (Drive 1)
+03H,1 - A current drive number at the time of two drive simulation (0~1)
+05H,1 - A flag according to the read/write (b0)
+06H,1 - The state of the motor (Data for input/output notes)
+07H,1 - The number of the physics drives (0:1 drive 1:2 drives)
+0AH,9 - A buffer for FDC command
+13H,7 - A buffer for result status
*Work Area for format
+00H,2 - The storing address of the data for boot sectors
+02H,1 - Media ID
+03H,2 - The number of Sector
+07H,1 - Physical drive number
+08H,1 - Format Type-1
+0BH,36 - A buffer for format parameters(For 4 bytes *9 sector)
+39H, - A buffer for FDC command
+200H, - A buffer for read
P.S. blueMSX had better to be supported as 3 kinds of TC8566AF (MSX2) / TC8566AF (MSX2+ with FC FC FF 3F) / TC8566AF (MSXturboR with FC FC FF 3F) |
|
| Back to top |
|
 |
dvik
Joined: 20 Mar 2004 Posts: 2129 Location: San Diego
|
Posted: Tue Jan 22, 2008 4:54 am Post subject: |
|
|
| Quote: |
(7FF0 is always shown as Bank No for MSX-DOS 2 Kernel.) |
Can you explain what this mean? I don't really understand why the value is 0 for dos1 and 3 for dos2. |
|
| Back to top |
|
 |
|
|
You can post new topics in this forum You can reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|
|