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

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
    29

    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

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
  •