Image Map Image Map
Page 3 of 3 FirstFirst 123
Results 21 to 29 of 29

Thread: Wanted: Exidy Sorcerer CP/M

  1. #21

    Default

    Nice work Larry (and Chuck of course),

    I tried to load the diskboot.dat and/or boot.bin from the Java emulator but it is only a 256 bytes block to be loaded at $BC00 (which seems to make sense) but then it tries to jump to $BE00 and I did not find where that block of code should be coming from. Also no info found yet in where a/the diskcontroller is I/O mapped or memory mapped..

    [Edit] found that $BE00, $BE01 and $BE02 are in fact the floppy controller registers, at least: in the emulator.
    Last edited by gertk; August 12th, 2018 at 10:59 AM.

  2. #22
    Join Date
    May 2018
    Location
    Melbourne, Australia
    Posts
    31

    Default

    Quote Originally Posted by gertk View Post
    Nice work Larry (and Chuck of course),

    I tried to load the diskboot.dat and/or boot.bin from the Java emulator but it is only a 256 bytes block to be loaded at $BC00 (which seems to make sense) but then it tries to jump to $BE00 and I did not find where that block of code should be coming from. Also no info found yet in where a/the diskcontroller is I/O mapped or memory mapped..

    [Edit] found that $BE00, $BE01 and $BE02 are in fact the floppy controller registers, at least: in the emulator.
    I suspect the Java Sorcerer emulator engine is based on the old MESS emulator. Certainly the software the author includes is very similar to what was floating around in MESS years ago and reflected the personal collection of the author of the Sorcerer MESS 'driver'.

    I don't believe the author of the driver ever had a disk system himself and comments in the code reflect this lack of information.

    Line 133 here https://github.com/mamedev/mame/blob...s/sorcerer.cpp might explain these jumps to BC00 or BE00

    I don't know if this is the controller Exidy supplied in their S-100 Expansion Unit http://www.s100computers.com/Hardwar...olis%20FDC.htm but it has a small bootstrap PROM. The OP's setup remains a mystery.

  3. #23

    Default

    First steps taken to get those CP/M disks read from my emulator (boot.tape is the 256 bytes boot file):
    Code:
    Loading /sd/tapes/boot.tape at address bc00                                     
    FDC write reg 0:a0                                                              
    Current drive:0 @ track:0                                                       
    FDC write reg 0:20                                                              
    Current drive:0 @ track:0                                                       
    FDC read reg 1                                                                  
    FDC read reg 0                                                                  
    F05A                                                                            
    FDC read reg 1                                                                  
    FDC read reg 1                                                                  
    FDC write reg 0:61                                                              
    Current drive:0 @ track:1                                                       
    FDC read reg 0                                                                  
    FDC write reg 0:61                                                              
    Current drive:0 @ track:2                                                       
    FDC read reg 0                                                                  
    FDC write reg 0:61                                                              
    Current drive:0 @ track:3                                                       
    FDC read reg 0                                                                  
    FDC write reg 0:61                                                              
    Current drive:0 @ track:4                                                       
    FDC read reg 0                                                                  
    FDC write reg 0:61                                                              
    Current drive:0 @ track:5                                                       
    FDC read reg 0                                                                  
    FDC write reg 0:61                                                              
    Current drive:0 @ track:6                                                       
    FDC read reg 0                                                                  
    FDC write reg 0:61                                                              
    Current drive:0 @ track:7                                                       
    FDC read reg 0                                                                  
    FDC write reg 0:61                                                              
    Current drive:0 @ track:8                                                       
    FDC read reg 0                                                                  
    FDC read reg 1                                                                  
    FDC write reg 0:60                                                              
    Current drive:0 @ track:7                                                       
    FDC read reg 0                                                                  
    FDC read reg 1                                                                  
    FDC write reg 0:60                                                              
    Current drive:0 @ track:6                                                       
    FDC read reg 0                                                                  
    FDC read reg 1                                                                  
    FDC write reg 0:60                                                              
    Current drive:0 @ track:5                                                       
    FDC read reg 0                                                                  
    FDC read reg 1                                                                  
    FDC write reg 0:60                                                              
    Current drive:0 @ track:4                                                       
    FDC read reg 0                                                                  
    FDC read reg 1                                                                  
    FDC write reg 0:60                                                              
    Current drive:0 @ track:3                                                       
    FDC read reg 0                                                                  
    FDC read reg 1                                                                  
    FDC write reg 0:60                                                              
    Current drive:0 @ track:2                                                       
    FDC read reg 0                                                                  
    FDC read reg 1                                                                  
    FDC write reg 0:60                                                              
    Current drive:0 @ track:1                                                       
    FDC read reg 0                                                                  
    FDC read reg 1                                                                  
    FDC write reg 0:60                                                              
    Current drive:0 @ track:0                                                       
    FDC read reg 0                                                                  
    FDC read reg 1                                                                  
    FDC read reg 0                                                                  
    FDC read reg 0                                                                  
    FDC read reg 0                                                                  
    FDC read reg 0                                                                  
    FDC read reg 0
    Looks like the drivehead is sent 9 tracks out and in again and then the waiting starts for the first sector.
    Now trying to connect the disk images to the read routine.

    If I understand correctly the data bytes of each 256 byte sector start at byte offset 13 with a closing CRC byte at the end.

  4. #24

    Default

    I've conjured up the libdsk definitions for the 5.25" & 8" Floppy files that are on the Internet. My version of
    cpmtools was built with libdsk.

    # libdsk floppy definitions
    [exi1]
    description = EXI1 Exidy Sorcerer - SSDD 48 tpi 5.25" - 256 x 16
    cylinders = 40
    heads = 1
    secsize = 256
    sectors = 16
    secbase = 1
    datarate = DD


    [exi2]
    description = EXI2 Exidy Sorcerer - SSDD 8" - 256 x 16
    cylinders = 77
    heads = 1
    secsize = 256
    sectors = 16
    secbase = 1
    datarate = HD

    With the previously created .RAW files libdsk's utility dsktrans can create the .IMD files:
    dsktrans -otype imd -format exi2 disk1.raw disk1.imd

    I've extracted this .RAW file and binary compared it to the original .RAW file. vbindiff says they are equal.
    That makes it possible for IMAGEDISK to write the CP/M Files to Floppy's.

    Of course dsktrans can also write directly to the Floppy Drive with:
    dsktrans -itype raw -otype floppy -format exi2 disk1.raw /dev/fd0

    Larry

  5. #25

    Default

    I don't know if this is the controller Exidy supplied in their S-100 Expansion Unit http://www.s100computers.com/Hardwar...olis%20FDC.htm but it has a small bootstrap PROM. The OP's setup remains a mystery.
    I started a seperate thread about my Exidy Diskboot rom analysing:

  6. #26

  7. #27

    Default

    For anyone wanting the .RAW & .IMD images of the Exidy Emulator's .DSK images, I've loaded my .ZIP
    file to Dropbox at this shared URL:

    https://www.dropbox.com/sh/vhmr2xx79...Wh4d21U0a?dl=0


    The same information was sent to Bitsavers, vintagecomputer.ca, https://amaus.org/static/S100/, http://www.liaquay.co.uk/, and
    Terry Stewart.

    Thanks.

    Larry

  8. #28
    Join Date
    May 2018
    Location
    Melbourne, Australia
    Posts
    31

    Default

    Quote Originally Posted by ldkraemer View Post
    In my years of researching online and offline for Sorcerer documentation I have never seen some of the material hidden away on that site.
    Love the photo on the cover of the illustrated catalogue showing the box that your S-100 Expansion Unit would have been shipped in.
    Mind officially blown.

  9. #29

    Default

    My emulator is coming along nicely: CP/M boots and supports 4 floppies of which the last one is writable. Disk system emulates a spinning floppy disk (took some reverse engineering to find out that is the way the controller and boot prom worked). The CPU polls the sector register to see if the requested sector is 'underneath the head' and then pulls in 270 bytes of data. That also explains the format of the Java emulator dsk files. Very neat.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •