Jump to content
IGNORED

XEL-CF Compact Flash Adapter for 1088XEL (formerly XEL-I3)


mytek

Recommended Posts

BTW: if you want to implement the ATR swap button in the finished part, you'll need bit 6 of $D384 latched whenever the button has been pressed. The PBI BIOS will check this on every SIO transfer and clear it automatically. Bit 7 on the Incognito means "button enabled", the idea being that it's ignored if bit 7 = 0. As I said: all the button logic is stripped out of the custom ROM at the moment since it hangs the system (the BIOS clears bit 6 and reads it back until it's clear).

 

I notice the PBI message only appears if the HDD is enabled, which isn't exactly the behaviour I described earlier. I might change so it displays all the time, since it's relevant to HSIO and the Z: handler as well as the hard disk.

 

Just thinking: if you chose to make a version of this device which sat - say - under the CPU of a standard machine, it would probably go like hot-cakes as an internal version of SIDE (enabling use of the cart port alongside the HDD).

Edited by flashjazzcat
  • Like 7
Link to comment
Share on other sites

Hi Jon,

 

Thank you for working with me on this project, and I'll be testing the latest firmware you uploaded in an hour or two (just woke up, feeding the furry grandkids, and need to take a quick shower before heading over to the shop). Starting to sound like this will be the version that works, so I got my fingers crossed.

 

Interesting suggestion about the swap button. I hadn't even considered doing something like that, but I will look into it as a future possibility.

 

The CPU piggyback version also sounds intriguing, definitely have to think about that as well.

 

- Michael

  • Like 6
Link to comment
Share on other sites

Jon sorry I took so long to get back to you on your latest PBI firmware changes.

 

And now for what you have been waiting for... SUCCESS!!! :rolling:

 

https://www.youtube.com/watch?v=QY2Kaunw4ng

 

Now I just need to figure out the best way to get the on-board HDD Activity LED working.

 

- Michael

  • Like 9
Link to comment
Share on other sites

And now for what you have been waiting for... SUCCESS!!! :rolling:

That's great news! :) Really cheered me up since my soldering iron just died and while I should have a replacement handle by the weekend, I have a feeling the whole station is on its last legs. That's cheap 2-in-1s for you, but it's all I could afford.

 

Anyway: since it's possible I'll be out of action for a while, there's no better time to properly reorganise the PBI ROM sources and make the changes I mentioned earlier. :)

 

PS: The Incognito driver will take about five seconds to time out if there's no card present, and since there's no IDE alternate status register, we can't detect the card via a hardware reset of the IDE controller. Same thing applies with the XEL I3, with the added possibility of the adapter being absent. Perhaps a shorter polling timeout will improve matters.

Edited by flashjazzcat
  • Like 5
Link to comment
Share on other sites

That's great news! :) Really cheered me up since my soldering iron just died and while I should have a replacement handle by the weekend, I have a feeling the whole station is on its last legs. That's cheap 2-in-1s for you, but it's all I could afford.

 

Anyway: since it's possible I'll be out of action for a while, there's no better time to properly reorganise the PBI ROM sources and make the changes I mentioned earlier. :)

 

I was pretty frickin happy myself when I saw it work for the first time :)

 

So your soldering iron's failure might end up being my blessing :thumbsup: (although I'm sorry you need to go spend more money to make it right :( ). So does this mean I'll see a working loader coming up fairly soon? ;)

 

As for the PBI code, I thought about the swap button aspect you mentioned, and it really isn't something I can practically add. For one thing the address isn't able to be decoded with the signals provided on the XEL's MPBI port. And I know I'll get some grief for saying this, but I don't see it as a necessity that warrants adding the extra circuitry and having to tie into other off-port signals.

 

- Michael

  • Like 4
Link to comment
Share on other sites

I quite understand re: button. It's really only useful for rotating disk sets mid-session, and you can rotate them in software (via the loader), so it's not a deal breaker. I'll purge all references to the button from your next build. Of course we then get into the territory of the button option in the main BIOS being redundant. :)

 

Loader should be easy enough. Might as well tackle that over the weekend. Brought my old Antex iron out of retirement (still works after five years) so was at least able to finish what I was doing tonight.

  • Like 6
Link to comment
Share on other sites

I quite understand re: button. It's really only useful for rotating disk sets mid-session, and you can rotate them in software (via the loader), so it's not a deal breaker. I'll purge all references to the button from your next build. Of course we then get into the territory of the button option in the main BIOS being redundant. :)

 

Loader should be easy enough. Might as well tackle that over the weekend. Brought my old Antex iron out of retirement (still works after five years) so was at least able to finish what I was doing tonight.

 

I'll be 'Incognito' for the next 3 days, so no rush. Just grateful for what you have done thus far, which makes this new CF board usable.

 

- Michael

  • Like 4
Link to comment
Share on other sites

HDD ACTIVITY LED FIX

 

I went on-line to find a solution to making the Activity LED on the IDE/CF adapter I was using in my project work. I did find something, but it was a fix for an entirely unrelated reason. So I came up with my own solution.

 

So what was the problem...

 

Apparently the designer thought it would be nice to buffer the /DASP line coming out of the CF Card with the use of a two NPN transistor circuit (simple buffer). The problem is that it appears that the wrong transistors were used in my batch of adapter boards. So reading up on the specs for this signal output, it appears that it is rated for 20 ma, more than sufficient to directly drive the LED, especially considering that it has a 1K pull-up resistor to +5 V. So my solution was to jumper across this circuit (no removal of parts required).

 

MFepT7S.jpg

 

 

And here is a video showing it in action...

 

https://www.youtube.com/watch?v=654aGSiJOFU

 

- Michael

Edited by mytekcontrols
  • Like 7
Link to comment
Share on other sites

Product Off-Shoot is Now Planned

 

Thanks to FJC's suggestion, I will be creating a CPU piggyback board for non-XEL A8 computers that will give them a MPBI port. In this way MPBI devices created for the XEL will also plug in and work in all of the A8 computer series, thus acting as a bridge interface of sorts between all different model series. This alternative MPBI will be missing a couple of signals that can't be easily derived from the CPU alone, but those signals are noncritical in nature and likely won't be missed (i.e., not needed by the XEL-I3 for one). So soon you will have SIDE functionality in any U1MB upgraded A8 without hogging the cartridge port.

 

- Michael

Edited by mytekcontrols
  • Like 13
Link to comment
Share on other sites

Product Off-Shoot is Now Planned

 

Thanks to FJC's suggestion, I will be creating a CPU piggyback board for non-XEL A8 computers that will give them a MPBI port. In this way MPBI devices created for the XEL will also plug in and work in all of the A8 computer series, thus acting as a bridge interface of sorts between all different model series. This alternative MPBI will be missing a couple of signals that can't be easily derived from the CPU alone, but those signals are noncritical in nature and likely won't be missed (i.e., not needed by the XEL-I3 for one). So soon you will have SIDE functionality in any U1MB upgraded A8 without hogging the cartridge port.

 

- Michael

 

This is gonna be one of those "TAKE MY MONEY!" products. :)

 

Actually, while I am at it, would it be possible to include a little header on there for U1MB signals (like on the Adaptus board) so solderless U1MB installation is possible?

  • Like 6
Link to comment
Share on other sites

This is gonna be one of those "TAKE MY MONEY!" products. :)

 

Actually, while I am at it, would it be possible to include a little header on there for U1MB signals (like on the Adaptus board) so solderless U1MB installation is possible?

 

Oh yes great idea! Consider it done.

 

- Michael

  • Like 4
Link to comment
Share on other sites

More on this CPU/MPBI piggyback board...

 

While I'm at it, and since I'll have a 74HCT08 on board to buffer the PH2 signal, I can also use one of the extra gates in that chip to add the 1200XL /EXTSEL circuit. For other systems that already have this signal, and to implement a more complete MPBI spec this and the /CI (Cas Inhibit) will need to be acquired off board. However the XEL-I3 IDE/CF Interface does not require these signals, so that can be skipped for that instance.

 

There will also be a 74HCT138 on board to mirror the decoding of the one on the motherboard in order to breakout the required /CS outputs to the MPBI connector.

 

Important Note: There will need to be one mandatory solder connection made, and that is to pick up the MMU I/O line (MMU pin 7). So unfortunately it isn't going to be a completely solder-less installation (but pretty close to it).

 

- Michael

Edited by mytekcontrols
  • Like 5
Link to comment
Share on other sites

As promised, I added an extra build target for the PBI BIOS and loader so XEL-I3 versions can be produced as easily as the others. No way to test these here, so I hope the PBI still works and that the loader works too:

 

XEL-I3.zip

 

To ensure the new assembly conditionals didn't break existing targets, I've run diffs on all builds and they're identical. The XEL-I3 PBI BIOS now also reports its proper title in the boot message and also in DISKINFO (see the APT programming docs on my website), and has a unique hardware ID ($10).

 

Any problems, give me a shout. Should be easy enough to fix. Once the XEL-I3 PBI and loaded are certified working, I'll release this update for U1MB/SIDE and Incognito. There's also a main BIOS update not included here. ;)

 

 

  • Like 4
Link to comment
Share on other sites

As promised, I added an extra build target for the PBI BIOS and loader so XEL-I3 versions can be produced as easily as the others. No way to test these here, so I hope the PBI still works and that the loader works too:

 

attachicon.gifXEL-I3.zip

 

To ensure the new assembly conditionals didn't break existing targets, I've run diffs on all builds and they're identical. The XEL-I3 PBI BIOS now also reports its proper title in the boot message and also in DISKINFO (see the APT programming docs on my website), and has a unique hardware ID ($10).

 

Any problems, give me a shout. Should be easy enough to fix. Once the XEL-I3 PBI and loaded are certified working, I'll release this update for U1MB/SIDE and Incognito. There's also a main BIOS update not included here. ;)

 

The new PBI code works great, but I can't get UFLASH to accept the XLOAD file. Gives me a "INVALID FILE SIGNATURE" message. I figure it's probably something very minor.

 

- Michael

Link to comment
Share on other sites

The new PBI code works great, but I can't get UFLASH to accept the XLOAD file. Gives me a "INVALID FILE SIGNATURE" message. I figure it's probably something very minor.

 

That's odd: I tested the flash here to ensure that wouldn't happen. You can disable signature checks in UFLASH to get around this anyway.

Link to comment
Share on other sites

That's odd: I tested the flash here to ensure that wouldn't happen. You can disable signature checks in UFLASH to get around this anyway.

 

Ok I just had something happen that is very odd. I verified that UFLASH didn't recognize the signature once again, and then went into Options and disabled it, after which I could get past the warning, but then I got another warning as follows: "Short File was 4KB, expected 16KB"

 

What's very odd, is that the file size is 16,384 according to SDX and makeATR.

 

So I tried loading the ULOAD129 ROM (what I originally was running) and all went well.

 

Any idea of what might be happening?

 

- Michael

Link to comment
Share on other sites

To add to this. I tried re-downloading the ROM(s) zip file, re-extracted the individual ROMs, used makeATR to transfer to my SDX work disk, booted up with SIO2PC-USB through RespeQt, and then tried once again to get this ROM file to load via UFLASH. Result: No Change.

 

Next I changed the transfer speed from divisor zero to the normal 57600(3x) setting in RespeQt to see if corruption was occurring due to a too high of a transfer speed, but still the same problems when trying to load xload132. So one last thing I did was I also told UFLASH to ignore short files and this time I was able to load the file, only problem is it doesn't work and gives me a black screen every time I try to invoke the loader.

 

- Michael

Link to comment
Share on other sites

Yikes. I got a nice clean flash here with default settings and the loader ran and timed out on disk access as expected (there being no IDE hardware at the expected address). Maybe the version of UFLASH I'm using is a bit newer; I'll upload it later. Most recent release is from the BIOS pack released last December?

  • Like 2
Link to comment
Share on other sites

Hi Jon :) You hit it on the nose... yes my UFLASH was a bit too dated (September 2016). Once I got the latest off your website all was ok, no more fussing with disabling signatures, and no more warnings :thumbsup:

 

Made a quick video showing a few tests...

 

https://www.youtube.com/watch?v=AGS8lCc8rqQ

 

So far so good :thumbsup: :)

 

Thanks a bunch for getting this done so quickly. I'll Be testing it more into this coming week and be sure to report back to you on how things are going. But for the moment it's looking real solid.

 

- Michael

Edited by mytekcontrols
  • Like 7
Link to comment
Share on other sites

That's great news. Better test with cartridges at some point. Disabling the ATR swap button should ensure carts remain accessible when the HDD is enabled.

 

PS: I reduced the IDE timeout to some 2 seconds so booting with the HDD enabled without the adapter/CF card present should no longer hang up the system for 5 seconds.

Edited by flashjazzcat
  • Like 5
Link to comment
Share on other sites

That's great news. Better test with cartridges at some point. Disabling the ATR swap button should ensure carts remain accessible when the HDD is enabled.

 

PS: I reduced the IDE timeout to some 2 seconds so booting with the HDD enabled without the adapter/CF card present should no longer hang up the system for 5 seconds.

 

I'll be sure to check those things as well.

 

- Michael

Link to comment
Share on other sites

I reduced the IDE timeout to some 2 seconds so booting with the HDD enabled without the adapter/CF card present should no longer hang up the system for 5 seconds.

 

I ran a test on this today, but apparently it still hangs for quite awhile...

https://www.youtube.com/watch?v=n_sNEoT4ttc

 

However other than that, everything else still looking good including no problems thus far with cartridges (did some testing with the Basic XL cart in place and reading and writing to the CF).

 

- Michael

Link to comment
Share on other sites

Improved Basic Test program to verify IDE Drive (or Compact Flash card)...

https://www.youtube.com/watch?v=SdRtkpwXKfM

5 IDEPRNT=500:REM IDE PRINT ROUTINE
10 IDE=53728:REM IDE BASE ADDRESS
15 RST=4:REM RESET COMMAND
20 DPARM=224:REM DRIVE PARAMETERS
25 FEAT=239:REM SET FEATURE COMMAND
30 ID=236:REM IDENTIFY COMMAND
35 REM ----- DRIVE SET-UP -----
40 POKE IDE+7,RST
50 POKE IDE+6,DPARM
60 POKE IDE+1,1:REM 8-BIT MODE
70 POKE IDE+7,FEAT
80 POKE IDE+7,ID
85 REM ----- MAIN PROGRAM LOOP -----
90 FOR X=0 TO 255:DLSB=PEEK(IDE):DMSB=PEEK(IDE)
100 IF X=10 THEN ? "S/N: ";
110 IF X>9 AND X<20 THEN GOSUB IDEPRNT
115 IF X=23 THEN ?  "REVISION: ";
116 IF X>22 AND X<27 THEN GOSUB IDEPRNT
120 IF X=27 THEN ?  "MODEL   : ";
130 IF X>26 AND X<47 THEN GOSUB IDEPRNT
135 IF X=48 THEN ? 
140 NEXT X
150 END 
500 REM ----- PRINT ROUTINE -----
510 ? CHR$(DMSB);
520 ? CHR$(DLSB);
5320 RETURN

Basic File: IDETEST.BAS

I learned how to enable 8-Bit Addressing mode, and implemented this in the latest test program. Currently this is set-up to query an XEL-I3 through the MPBI at a base address of $1DE0. However by changing the base address equate in line 10, this routine will work with other IDE hardware.

More Info on Accessing CF card data via 8-Bit mode

- Michael

IDETEST.BAS

Edited by mytekcontrols
  • Like 5
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...