• Please review our updated Terms and Rules here

Making John's ZFDC Board work with His Z-80 Board

Marty

Veteran Member
Joined
Jul 26, 2009
Messages
3,141
Location
Boulder , Colorado USA
Hi All;

I have been talking to John and I have taken up too much of His Time, So Thank You John, for Your Help..

I have been re-building His ZFDC Board, and I have been doing each of the Steps on His Web page..

So, I have gotten to the point where I test as I build each step , and it has Passed so far, using the Z-80 Monitor..

Till it shows in the Web Page His ZFDC Monitor, with the various Diag Commands, only I don't know How to bring up the ZFDC Diagnostic Monitor, which is what I need to do to get the board tested and Working..

So, what am I doing Wrong, or not reading what or how I need to proceed ??

THANK YOU Marty
 

daver2

Veteran Member
Joined
Jun 19, 2012
Messages
7,667
Location
UK - Worcester
I have downloaded all of the 'code' for the ZFDC. There are four (4) files within the ZIP download:

ZCOPY - This is a CP/M program to copy from one disk to another.
ZFORMAT - This is a CP/M program.
ZFDCDIAG - This is a CP/M program.

ZFDC - This is the firmware for the ZFDC card.

The ZFDC firmware does contain a mini-monitor that interacts with the CPU card via the registers. The menu of available commands is here:

Code:
MENUMSG:	DB CR,LF
  		DB 'A=Memmap        D=Disp Memory      E=Echo Keyboard    F=Fill Memory',CR,LF
  		DB 'G=GoTo RAM      H=Hex Math         J=Test RAM         K=Display Menu',CR,LF
  		DB 'M=Move Memory   Q=Query Port       R=WD2793 Regs      S=Substitute',CR,LF
  		DB 'T=Type ASCII    V=Verify Memory    X=Z80 Regs         Y=Find Bytes',CR,LF
  		DB 'Z=Top of RAM    ESC=Back to WD2793 Chip',CR,LF,'$'

As far as I can tell, you enter the mini-monitor on the ZFDC by sending a command byte of $01 to the ZFDC from the CPU card. Now, how you do that I haven't been able to find out yet.

All interactions between the ZFDC and the CPU then takes place via the ZFDC interface ports. This implies (to me) that you require a separate program running in the Z80 to handle the handshaking required by the ZFDC.

This monitor appears to have the basic functions of manipulating memory, checking he status registers of the WD2793 etc.

There also appears to be a @DEBUG_FLAG which can be turned on by sending the SET_DEBUG_ON command (17h) or turned off by sending the SET_DEBUG_OFF command (18h). I am guessing that these commands output data to the on-board 7-segment displays.

I still think your best bet is to contact John about this - as he was the author...

Dave
 
Last edited:

Marty

Veteran Member
Joined
Jul 26, 2009
Messages
3,141
Location
Boulder , Colorado USA
Hi Dave;

Thank You for for Your Reply and insight..

Just, so, I know we are taling about the same file.. Which Version of ZFDC are you referencing above ??

I have Download and Programmed into a 28C256 EEprom ZFDC (Version 2.5) and it Starts off by Counting and Displaying it in the 2 left most Hex Displays, (one) showing that it is working and (two) it is communicating with the system (Z-80 I think)..

I also have ZDIAG Version 3.5 in Eprom, and it comes up as well, but does not have the Counting bits..

As far as I can tell, you enter the mini-monitor on the ZFDC by sending a command byte of $01 to the ZFDC from the CPU card. Now, how you do that I haven't been able to find out yet.

This is done (I think) with the QO, or QI commands depending on what You need to do, for setting these it would be QO..

I still think your best bet is to contact John about this - as he was the author...

That is why I am asking my Questions here, is John Said, He was too Busy to go back and go thu the old stuff like this, and Help me figure out what was wrong..

There also appears to be a @DEBUG_FLAG which can be turned on by sending the SET_DEBUG_ON command (17h) or turned off by sending the SET_DEBUG_OFF command (18h). I am guessing that these commands output data to the on-board 7-segment displays.

I will work on trying to make this work..

THANK YOU Marty
 
Last edited:

Marty

Veteran Member
Joined
Jul 26, 2009
Messages
3,141
Location
Boulder , Colorado USA
Hi All;

Dave, I used this command QO10,01 and it responded with '090A0 on the Hex displays.. I need to see what the 090A0 means on the Displays..
And, with the WD2793 in place, and the 8" Disk Drives Hooked up..
I get 'FF00 on the Display..
On Version 2.5 This Debug feature seems to work, as far as I can tell on Version 3.5 the Debug feature Doesn't Work..
I just did the 17hex with QO10,17, and it displays EEE10..

But, I still do not get the Menu that You show above..

THANK YOU Marty
 
Last edited:

daver2

Veteran Member
Joined
Jun 19, 2012
Messages
7,667
Location
UK - Worcester
I downloaded the latest ZIP file from the webpage http://www.s100computers.com/My System Pages/ZFDC Board/ZFDC.htm (right at the bottom) called "MOST CURRENT SOURCE CODE FOR ABOVE FILES".

I don't think the Z80 monitor command QO10,01 will work properly - as all it is doing is outputting a byte of 01 to I/O port 10. It is not doing any of the handshaking required for the ZFDC. There are acknowledgement byte(s) that need to pass between the two - and then the monitor text etc. from the ZFDC mini monitor needs to be 'handshaked' from the ZFDC I/O port into the Z80 CPU card and then displayed on the CONSOLE serial port by a program on the Z80 CPU end. I don't think any of this code is in the monitor on the Z80 CPU card.

Conversely, ZFDC mini monitor commands have to be sent from the Z80 CPU to the ZFDC mini monitor via the I/O ports between the two with the correct handshake protocol.

The menu above is an extract from the ZFDC firmware source code. This would be obtained from entering the K command of the ZFDC mini monitor (but only if you can get the ZFDC firmware to work with then Z80 monitor firmware.

What you have used before may be an 'old' (development) version of the ZFDC firmware and is no longer supported by the later version(s)?

My suggestion still is to contact John and obtain his advice as the developer.

Dave
 
Last edited:

Marty

Veteran Member
Joined
Jul 26, 2009
Messages
3,141
Location
Boulder , Colorado USA
Hi All;

Thank You Dave, I downloaded the latest ZIP file from the webpage..
That's version 3.5, the Debug doesn't seem to work in version 3.5.. But, it does in version 2.5..
Yes, (This would be obtained from entering the K command) I have used this in the Z-80 monitor list of commands..
If, there was or is a way to copy the Binary file of the ZFDC file to Ram at '0000, then I could Run it..
But, with what I have that is not possible, no XMODEM in the current Z-80 Eprom..
Dave, Which Z-80 code Assembler did You use, I have combined the code of Master0 and Master1, and if I take out the IOBYTE stuff, maybe it will run and I would have the XMODEM command..

Also, Dave do you have an S-100 system with these Boards, Just wondering, as You seem to know so much about this ??

THANK YOU Marty
 

daver2

Veteran Member
Joined
Jun 19, 2012
Messages
7,667
Location
UK - Worcester
Looking at the revision control comments at the front of the ZFDC firmware source, nothing appears to have been deleted between V2.5 and V3.5? I can’t find a download of V2.5, so I can’t verify this though. My view is that if V3.5 is the latest firmware, that is what you should be using (otherwise what bug fixes and new features are you missing)?

I use the online asm80 assembler (asm80.com).

I am not sure about copying ZFDC to 0. This already runs at 0 on the ZFDC. It won’t run on the CPU card (if that is what you are thinking).

Also, ZFDCDIAG will only run at 100 on the CPU card, but this will require CP/Ms BDOS to run.

No, I don’t have an S-100 system with these cards. I am just going from the data on the website and reading the source code.

Dave
 

Marty

Veteran Member
Joined
Jul 26, 2009
Messages
3,141
Location
Boulder , Colorado USA
Hi All;

Dave, Thank You for Your reply..
No, (It won’t run on the CPU card (if that is what you are thinking). That was not what I was thinking..
Two, things.. First, I have asked John for an Earlier, file, Presently it is 5.4 and I have asked for 4.5.. Before, he had IOBYTE..
Secondly, Because John says, I need a CPM system, I am thinking of trying to make one of my Tarbell Single Density Controllers Work, and get CPM, working that way, and go from there.. Just a thought..

THANK YOU Marty
 

daver2

Veteran Member
Joined
Jun 19, 2012
Messages
7,667
Location
UK - Worcester
Is the Tarbell controller compatible with anything that is supported by John’s Z80 CPU firmware?

I see the Versafloppy and his ZFDC.

If the Tarbell isn’t compatible, you won’t be able to boot from it (or have a CP/M BIOS?)

Dave
 

Marty

Veteran Member
Joined
Jul 26, 2009
Messages
3,141
Location
Boulder , Colorado USA
Hi All;

Dave, Thank You for Your reply..

First, I asked John for an older Version of His Master (Z-80) Monitor and He Kindly passed on Just what I was looking for..
That will Help quite a bit, toward getting things going..
" Is the Tarbell controller compatible with anything that is supported by John’s Z80 CPU firmware? "
I don't know at the Present, I will have to check and see, I think, I can make it work if I need to..
First, get an older mostly pre-IOBYTE) Monitor working..

THANK YOU Marty
 

Marty

Veteran Member
Joined
Jul 26, 2009
Messages
3,141
Location
Boulder , Colorado USA
Hi All;

Dave, instead of the Assembler that You are using, I found that the one John is using Work's Great ..

Go the John's Web site s100computers.com..

Go to the Software icon and click on it..

Go down to the Altair.com and click on the 'red' here..

Download CoreSimh files.zip

On Your Computer make a new file and call it -- Altair..

Copy the CoreSimh files.zip to there and unzip it..

Just follow the Instructions on the page..

The SR Assembler works Great, without changing any of the file to be compiler to make it work.. It just works out of the Box..

THANK YOU Marty
 

daver2

Veteran Member
Joined
Jun 19, 2012
Messages
7,667
Location
UK - Worcester
>>> The SR Assembler works Great, without changing any of the file to be compiler to make it work.. It just works out of the Box..

But it would do if that is what John used to assemble it in the first place :)!

My 'go to' assembler is asm80. I know that beast. I am writing some MC6800 code at the moment using it!

Dave
 

Marty

Veteran Member
Joined
Jul 26, 2009
Messages
3,141
Location
Boulder , Colorado USA
Hi All;

Dave, " But it would do if that is what John used to assemble it in the first place ! "

Yes, that is what He is using..

I just tried Master 4.4, and it still won't work, but it may be slightly too old for my Serial card..
But, I got the IOBYTE stuff out of it, I will try Master 4.6 and Master 4.7..
Now that I know "HOW" to do it and what to look for, it won't be as hard for me, Hopefully, I can work my way up to Master 5.4..

THANK YOU Marty
 
Top