Jump to content
jblenkle

New IDE/Compact Flash interface for ADAM

Recommended Posts

The Stand-Alone ADAM has three video outputs:

 

:arrow: RF jack - via Channel 3 or 4

:arrow: 7-PIN DIN Connector - provides both Composite Video as well as Audio

:arrow: Composite Video jack - provides only Composite Video output

 

The ADAM was not modified for any other video output used in foreign countries. For instance, in France, only the Expansion Module #3 ADAM Computer was sold and therefore a ColecoVision would have to be attached to it. The ColecoVision in France, of course, was sold with the Scart output.

Share this post


Link to post
Share on other sites

I still need to look through the docs to figure out what I'd have to change from the cart bootup and what a test cart header is like.

I would need an image of the expansion ROM image to go much further.

If you need any further help, you could try the ColADAM Mailing List and send any requests to Rich Drushel (Dr. D) as he previously disassembled the EOS as well as other ADAM programs and would seem like the perfect person to discuss matters with. Also, Dale Wick, goes by HardHat on these forums, would also be a very good person to contact as well.

Share this post


Link to post
Share on other sites

If you need any further help, you could try the ColADAM Mailing List and send any requests to Rich Drushel (Dr. D) as he previously disassembled the EOS as well as other ADAM programs and would seem like the perfect person to discuss matters with. Also, Dale Wick, goes by HardHat on these forums, would also be a very good person to contact as well.

Well, since I already disassembled the parts of the Adam ROM I need, I don't think I need a disassembly of the EOS though I would still like a copy just in case.

All I really need at this point is an image of the expansion ROM that boots the IDE interface.

I could use a tape image but that is a LOT more complex.

With the EPROM image I can use a PC based disassembler.

 

Ok, correction... I also need the Adam (which should arrive tomorrow) and the Ultimate SD cart which *might* be here tomorrow as well.

I guess it wouldn't hurt to have docs on how to make an image of a cart either.

Edited by JamesD

Share this post


Link to post
Share on other sites

Well, the Adam I bought looks like new but it has multiple problems.

 

The keyboard has several dead keys, the tape drive squeals in high speed mode, and worst of all the machine seems to have something messing up on the video circuit. The fist two look like reasonably easy fixes but the last one might take some time to fix.

Smartwriter seems to display the same thing on the left and right hand sides of the screen and when I reset to enter COLECOVISION mode it says something like COCOCO... I forget the rest. I don't know if it's bad RAM, a bad ribbon cable interfering with writes to video or a bad video chip. The machine does does talk to the printer and it tries to boot SmartBASIC but that's screen is messed up as well. I tried reseating chips, the ribbon cable, etc... and it didn't help so it's probably not an easy fix. It would be nice to have a CPU board to swap to see if that fixed the problem. BTW, is it common for Adams to have a cut in the ground plain just behind the middle slot? It looks like someone hacked at the board with a utility knife.

 

Since I already have a couple machines I need to finish some upgrades on, fixing a machine with multiple problems is going to have to wait until the known good machines are back together. I could still write code but I wouldn't be able to test anything myself and nobody has stepped up to provide an image of the IDE boot ROM anyway. I'm just glad I waited to order the IDE upgrade until after I found out if the machine works.

Edited by JamesD

Share this post


Link to post
Share on other sites

I'll make a Disk as well as Data Pack PC Image File of the IDE Hard Drive Boot software for you. My old DOS based system is partially disassembled, but I'll have it back together by tonight and make the image file for you. I have attached an older version of this software for you to look at in the meantime seeing as I don't want you to lose interest. :P

 

You will want to look at Block #00 of the image as far as the boot loader. Blocks #01 is the file directory and Blocks #02-10 contain the HARDDISK menu program... this HARDDISK menu program actually resides on the IDE Storage Device that the end-user decides to use (CF Card, HD, Zip, Sparq, etc.).

 

Sorry to hear that the ADAM you picked up has SO many issues and it sounds like you have already checked all the obvious possibilities like loose chips, ribbon cables, etc. I would contact AtariAge member "adamcon" seeing that he should be able to supply you with loose items like the ADAM Logic Board or the CV Delta Board. He also stil has an extensive list of items availale through his website and probably a lot of other items that aren't listed there.

Hard Disk System v2.3 (1989) (AJM Software).zip

Edited by NIAD

Share this post


Link to post
Share on other sites

I still need to look through the docs to figure out what I'd have to change from the cart bootup and what a test cart header is like.

I would need an image of the expansion ROM image to go much further.

 

<edit>

Checking for test cart header? (sorry this isn't as pretty, I have to figure out some disassembler settings)

 

2a0080 ld hl,(8000)
7d	 ld	 a,l
fe55	 cp	 55h
c28100 jp	 nz,0081h
7c	 ld	 a,h
feaa	 cp	 0aah
c28100 jp	 nz,0081h
2a0a80 ld	 hl,(800ah)
e9	 jp	 (hl)

So a test cart starts $55aa?

 

 

So, the ultimate SD cart comes with a test ROM and it starts with (drum roll please).... $55aa.

And I can see what it says about my Adam... if I can read the screen that is.

(I'm thinking video RAM)

Share this post


Link to post
Share on other sites

I'll make a Disk as well as Data Pack PC Image File of the IDE Hard Drive Boot software for you. My old DOS based system is partially disassembled, but I'll have it back together by tonight and make the image file for you. I have attached an older version of this software for you to look at in the meantime seeing as I don't want you to lose interest. :P

 

You will want to look at Block #00 of the image as far as the boot loader. Blocks #01 is the file directory and Blocks #02-10 contain the HARDDISK menu program... this HARDDISK menu program actually resides on the IDE Storage Device that the end-user decides to use (CF Card, HD, Zip, Sparq, etc.).

I'm heads down on the tape format. I already have a hunch as to what I'll find for boot code.

 

BTW, is the compact flash image readable on a PC or proprietary? Will any of the Adam disk tools on the net read/write to an image of the IDE drive?

  • Like 1

Share this post


Link to post
Share on other sites

I almost forgot that Geoff Oltmans started work on updating ADAMem to the SDL standard. There haven't been any updates in a long time, but I have provided a link to his website. The cuurevt version of ADAMem SDL does support the IDE Interface Card (he calls it PowerMate IDE) and it also supports IDE Boot proms installed in Expansion Slot #02 Interface Cards. Details are provided via the ADAMem SDL link on his main page. BTW, he is a member here on AtariAge as well if you try to contact him... very knowledgeable on both the hardware and software side.

 

http://bellsouthpwp2...dam/active.html

 

I made Disk and Data Pack images of the latest IDE Boot software. It will boot via an emulator, but then locks up due to the HARDDISK menu program not being included on the image file... as I noted previously, this new IDE Card setup comes with the HARDDISK file setup on the BOOT partition of the CF Card.

 

The Compact Flash card can be read and made into an image file for easy transfer/backup with a program called HDDRawCopy. This is the program Bob S. (adamcon) suggested I use to make an image backup of the CF Card to send to him once I finish up hacking/patching/setting up and bunch of ADAM software on my card and then he can use this image to place onto every CF Card he sells.

 

None of the old ADAM disk tools will read/write to an image of the IDE drive. However, I think Geoff Oltmans provides a new utility with his ADAMem SDL emulator that will create an IDE HD image on the PC and then you can use his emulator to read and write to it.

IDE Boot Disk & DDP Images.zip

ADAMEm SDL v1.8 - Source Code.zip

ADAMEm SDL v1.8 Win32.zip

ADAMEm SDL v1.8 OS-X.zip

  • Like 1

Share this post


Link to post
Share on other sites

I have a disassembly I started working on last night and I want to make absolutely certain I'm looking at the right file.

IDE Boot DDP.ddp is the boot data pack correct?

 

This one could take a while. It makes a lot of OS calls and relocates code in memory.

Is there a place I can download header files with the OS definitions?

I will need them for the final assembly file and I don't want to type that stuff in from scratch.

  • Like 1

Share this post


Link to post
Share on other sites

Correct, IDE Boot DDP.ddp is the driver software for the IDE Card (made in the late 80's for Micro Innovations IDE Card and the new card just released by MicroFox Tech/ADAMcon) and you could also use the IDE Boot DISK.dsk image file as it is identical... just on a 160K disk versus a 256K data pack.

 

As far as this driver, it was written back in 1989/1990 by Tony Morehen and assisted by Guy Cousineau, both of whom are no longer involved in the scene and I assume no one is in touch with them anymore. You will have to contact Bob S. (adamcon) to see if he has available the things that you need.

 

One thing that came to mind is that Geoff Oltmans would already have this IDE Boot software in rom image form seeing as his ADAMem SDL supports IDE emulation as well as boot prom loading. However, I didn't see this boot prom rom image in any of his distribution packages. So if you could get a hold of him, you could save yourself a lot of time and effort. I will email him as well.

Edited by NIAD
  • Like 1

Share this post


Link to post
Share on other sites

The IDE boot code seems to set up the video output and prints 'ADAMServe.' to the screen.

Then it makes some OS calls to set up some tables.

 

It accesses the following I/O ports. Not 100% certain as to the function though due to the slightly odd mapping of the IDE addresses:

02h - sector counter?

03h - start sector?

04h - lo byte of cylinder #??

05h - hi byte

06h - head and device select?

07h - command/status register?

 

58h - 59h - IDE data I/O register?

5Ah - interrupt and reset?

  • Like 1

Share this post


Link to post
Share on other sites

Correct, IDE Boot DDP.ddp is the driver software for the IDE Card (made in the late 80's for Micro Innovations IDE Card and the new card just released by MicroFox Tech/ADAMcon) and you could also use the IDE Boot DISK.dsk image file as it is identical... just on a 160K disk versus a 256K data pack.

 

As far as this driver, it was written back in 1989/1990 by Tony Morehen and assisted by Guy Cousineau, both of whom are no longer involved in the scene and I assume no one is in touch with them anymore. You will have to contact Bob S. (adamcon) to see if he has available the things that you need.

 

One thing that came to mind is that Geoff Oltmans would already have this IDE Boot software in rom image form seeing as his ADAMem SDL supports IDE emulation as well as boot prom loading. However, I didn't see this boot prom rom image in any of his distribution packages. So if you could get a hold of him, you could save yourself a lot of time and effort. I will email him as well.

I'm well on my way to getting the tape disassembly worked out and don't need the ROM anymore.

It probably would have been easier but I'm past that point now. The disk wouldn't have been any different from the tape I'm afraid.

 

Since the code moves things around and makes so many calls it's a bit time consuming to figure a few things out.

 

I won't have everything labeled in an initial source version but I should be able to get a cart image to work.

 

There are clear routines for reading, writing and IDE configuration.

This may be a complete driver rather than just a bootstrap and it boots the IDE just like a tape is booted.

If you replaced the menu with different boot code, that would probably boot that just as well.

You could boot straight into CP/M or other OS.

Maybe you could modify a dead tape drive to hold the CF card adapter and swap cards to be booted without opening the machine.

 

You guys seriously owe me a beer if I get this working. :)

  • Like 2

Share this post


Link to post
Share on other sites

Seeing as there is mention of ADAMServe (a program developed by Rich Drushel that lets the ADAM take over control/useage of PC drives via I would assume a Serial connection between the two computers) within the IDE boot software, it wiould mean that Rich Drushel (Dr. D) made some modifications to the original IDE boot program that was developed years ago by Tony Morehen. I'll fire off an email to Rich to see if he can chime in with some help.

Share this post


Link to post
Share on other sites

BTW, I could have had this running last night if I had just dumped the raw data from the tape, tacked it on to the end of my code, copied it to its normal start address and then called it. I figured having some sort of commented source that could be modified would be more useful in the long run.

People that have turned other tapes into carts could probably have done this in under an hour.

Share this post


Link to post
Share on other sites

Seeing as there is mention of ADAMServe (a program developed by Rich Drushel that lets the ADAM take over control/useage of PC drives via I would assume a Serial connection between the two computers) within the IDE boot software, it wiould mean that Rich Drushel (Dr. D) made some modifications to the original IDE boot program that was developed years ago by Tony Morehen. I'll fire off an email to Rich to see if he can chime in with some help.

Perhaps that isn't used and was just on the tape before the IDE boot software was written to it or the author hacked Adamserve to create his driver (most likely).

It's at the end of the code that's moved in memory after boot.

I would have thought it was the wrong tape if it weren't for the I/O that looks like an IDE port.

Now that you mention what AdamServe is the messages make sense. (there are other messages on the tape)

 

The boot screen stuff at the start of the code seems a bit pointless to me and I thought the program should just set up the IDE driver and boot.

Once I find out what isn't needed I'll probably yank that out. The only reason to mess with the screen is to report a boot error and the Adam would normally just load Smartwriter if it couldn't boot a device wouldn't it?

 

<edit>

Is source code available for Adamserve? If so that would make things a bit easier for some of the code.

Edited by JamesD

Share this post


Link to post
Share on other sites

Here is what is involved in booting a track from a tape with a cart:

1) Copy cart data (2nd step code + tape data + 3rd step code) to lower RAM, call 2nd step code copied to lower RAM

2) Replace the cart ROM with intrinsic RAM, copy tape data + 3rd step code to normal address tape boot data is copied to, call 3rd step code.

3) Select Smartwriter in lower bank and continue EOS setup from manual. Set memory to normal tape boot state, call the tape data (code)

 

In short... two memory copies to get the code in the right place, init EOS, and execute the code.

 

A large enough program may need to be split into multiple copy steps to load low and high intrinsic RAM but this is just a driver that boots the IDE drive.

Edited by JamesD

Share this post


Link to post
Share on other sites

Here is the link to Rich's website. Looks like a bunch of info files and source in the fourth entry "TWWMCA 0008.13"

 

http://users.stargat.../coleco/twwmca/

 

Yes, the ADAM would error out to SmartWRITER if it couldn't find a bootable media in the Data or Disk Drive. I'm guessing that it would lock-up if it didn't find an IDE device after booting "IDE Boot" unless some good error checking was implemented that would check for a problem, notify the user and then offer an option to reset the ADAM with a CALL 64560 or reset to SmartWriter with a CALL 64743.

Edited by NIAD

Share this post


Link to post
Share on other sites

By any chance does this controller not work with some drives?

What are you referring to as far as "controller", the IDE Interface Card? If so, I am not sure. Bob has stated that it will work with a good number of IDE devices that he has tested (100Mb Zip Drives, Sparq Drives, HDs, CF Cards), but I don't recall him listing out any that were incompatible.

 

If you are referring to the ADAMServe program, you would need to get your answer right from the horse's mouth... that being Rich Drushel. ;-)

Share this post


Link to post
Share on other sites

What are you referring to as far as "controller", the IDE Interface Card? If so, I am not sure. Bob has stated that it will work with a good number of IDE devices that he has tested (100Mb Zip Drives, Sparq Drives, HDs, CF Cards), but I don't recall him listing out any that were incompatible.

 

If you are referring to the ADAMServe program, you would need to get your answer right from the horse's mouth... that being Rich Drushel. ;-)

Well, the driver uses an ATA command that isn't in the docs I have.

It may be the docs I'm using are incomplete or it may be the driver, but any drive that doesn't recognize the command may not respond as intended.

Share this post


Link to post
Share on other sites

I took a couple days away from this but I haven't forgotten about it. I'm near the point where I think it's worth assembling.

Once the assembly looks right I'll create a cart image to test.

  • Like 1

Share this post


Link to post
Share on other sites

After looking at the disassembly of the boot EPROM I think it would be better to go with it.

I only had to patch 1 byte in the EPROM image using the EPROM data.

 

This is untested (no IDE controller or working Adam) and I don't have ZMac installed so I provided source.

It may need some fixes since I haven't passed it through an assembler yet.

This version does not include the eprom itself but the place it's data goes is marked with a comment.

 

;*****************************************************************
;* IDE Boot Cart.asm
;*****************************************************************
;* Loads the MICRO-INNOVATIONS boot EPROM from a game cart
;* and launches it from intrinsic RAM.
;* Author: JamesD
;*****************************************************************

;*****************************************************************
;* test cart header
;*****************************************************************
org 8000H ; start of cart memory

DCB 55H,AAH ; test cart ID
DCB 00,00,00,00,00,00,00,00 ; filler, we don't use this
; org 800AH ; location of cart start address
DCW CARTSTART ; cart start address, used to execute cart code
;*****************************************************************
;*****************************************************************
;* the first code executed in the cart
;* Steps match the post where I listed them on Atariage.
;*****************************************************************
CARTSTART:
; Step 1, copy from cart to OS7/24k intrinsic RAM
di ; interrupts would be bad durring this process
; copy code from cart into 24K intrinsic RAM
ld hl,LOWRAMCODE ; start
ld de,2000H ; destination... start of RAM
ld bc,ENDCODE - LOWRAMCODE ; length
ldir
jmp 2000H	 ; call code in 24K intrinsic RAM
; code from here on to be copied
LOWRAMCODE:
; Step 2, copy from OS7/24K intrinsic RAM bank to high intrinsic RAM bank
org 2000H ; start of 24K Intrinsic RAM

out (03H),9H ; Select intrinsic RAM in upper bank and OS7/24K intrinsic RAM in lower bank
; copy startup code from lower RAM into intrinsic RAM
ld hl,BOOTCODE ; start
ld de,8000H ; destination
ld bc,ENDCODE - BOOTCODE ; length
ldir

ld a,01h ; to patch EPROM code to use intrinsic RAM upper and lower
ld (8004),a ; patch 05h to 01h.

jmp 8002h; call high RAM code
BOOTCODE:
;boot eprom data goes here
ENDCODE:
end

The code tags don't seem to like the apostrophe in the comment.

If anyone sees a problem with this, let me know.

<edit> Minor code fix. I had to change the jmp to launch the boot code.

Edited by JamesD

Share this post


Link to post
Share on other sites

Zmac was only in source form in the archive I grabbed so generating an actual ROM file may take me a little time.

Share this post


Link to post
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.

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...