Jump to content

sup8pdct

Members
  • Content Count

    935
  • Joined

  • Last visited

Posts posted by sup8pdct


  1. This would be the easiest way if the indus has a command to upload and trigger execution of the code via SIO. I don't know for sure, but I figured the INDUS.SYS with SDX does something like this. Maybe that should be checked out to see how it's doing it? Or analyse the SIO commands it's sending to the drive.

    Indus does a command that loads code and executes it. it is X

    here is the code that handles it

    EXTERNALCMD: ; command X 41 bytes

    CALL Lb42 ; 02D8 CD0F0A send Ack

    LD A,($7821) ; 02DB 3A2178 daux2

    AND $01 ; 02DE E601 aux 2 = 0?

    JR Z,Lb53 ; 02E0 2817 go straight to external routine

    LD HL,$7F00 ; 02E2 21007F buffer to put data

    LD A,(CAUX12) ; 02E5 3A2078 number of bytes to load Daux1

    LD B,A ; 02E8 47

    CALL Lb39 ; 02E9 CD7C09 get bytes

    JP NZ,Lb54 ; 02EC C2A00A

    CALL Lb55 ; 02EF CD1B0A send Ack

    LD A,$43 ; 02F2 3E43 'C'omplete

    CALL SSIOBYTE ; 02F4 CD230A send byte sio

    JR Lb56 ; 02F7 1806 jump relative always

    Lb53: CALL Lb38 ; 02F9 CD007F call external command

    CALL C,SSIOBYTE ; 02FC DC230A send byte sio

    Lb56: XOR A ; 02FF AF zero A

    RET ; 0300 C9 .

     

    James

    • Like 2

  2.  

    Wait!

     

    But what you guys NEED to see is how fast the Indus works within a pure CP/M environment!

     

    I have clocked 7,200 bytes / sec. loading Microsoft Basic Compiler... around 4.1 secs... That is (relatively) way higher than ANYTHING I have been able to extract on SDX via SIO...

     

    So it is clear that a pure disk-surface / WD-controller / [Z80 + ROM] / RAM read pipeline seems to be able to operate at a nominal throughout that is HIGHER than SuperSyncho or ANYTHING you can get in SDX, even with a pre-formatted SuperSynchro. floppy...

     

    To understand the meaning of all this, all you need to look at is the MAX. speed attainable in SDX + SuperSynchro. format: around 3,400 Bytes / sec. We are a LONG WAY to reach 7,200 Bytes/sec (!!!)

    Here is the sector layout for indus CP/M init program.

    SECTMAP DEFB 01,10,02 ; 81CA 010A02 ...

    DEFB 11,03,12 ; 81CD 0B .

    DEFB 04,13,05 ; 81D0 04 .

    DEFB 14,06,15 ; 81D3 0E06 ..

    DEFB 07,16,08 ; 81D6 07 .

    DEFB 17,09,18 ; 81D9 110912 ...

    DEFB 128 ; 81DC 80 .

    Not quite fast enough for 1:1

     

    James

    • Like 1

  3. Another way to do it is to check if buffer+5 =4 and buffer+7 = $80 then format = enhanced. Not sure if it will result in more compact code tho.

    As a side note, ICD usd rom also accepts a smaller value for number of tracks in its special format command. So you could format a disk with 3 tracks if you wanted or mixed mode disks. No idea why you would do that tho.

     

    James


  4. The sdx version of super syncro has slightly altered timing when compared to original.

    No idea if it affects things.

    ;
    ;--------------------------------------------------------------------------
    ;following 5 instructions have been swapped around by ICD for timing issues with SDX.
    ;orignal code follows
    ;-------------------------------------------------------------------------
    ;
    SIOHIGHSPEED:
    CALL SENDBYTEHS ; 7E9A CDCC7E patched
    LD C,B ; 7E9D 48 save B
    LD B,$5A ; 7E9E 065A count 5A
    CALL CDOWNDELAY ; 7EA0 CD9E0C Count DOWN DELAY
    LD B,C ; 7EA3 41 end patched

    ;SIOHIGHSPEED
    ; LD C,B ; 7E9A 48 orignal version
    ; LD B,$5A ; 7E9B 065A .Z
    ; CALL CDOWNDELAY ; 7E9D CD9E0C ...
    ; LD B,C ; 7EA0 41 A
    ; CALL SENDBYTEHS ; 7EA1 CDCC7E end orignal version

    Re write with read verify check. it is the same in the drive firmware and in the syncro code. bit of an oops there :)

     

    James


  5. Can you please tell me how the write with read verify works where it compairs what was read with what was originally written?

    Code is:

    LD HL,(CURBUF)
    LD DE,VERBUF
    FNW0: LD A,(DE)
    CP (HL)
    JR NZ,FNW2
    DJNZ FNW0

     

    I think it checks the 1st byte of the sector 128/256 times, not the whole sector.

     

    James


  6. does the driver load from the 850? to test this, power everything off. turn on 850, then turn on computer. driver should auto load with 1 or 2 short beeps and a long beep. if not, time to start digging. 2 reload the driver into bobterm, make sure you power cycle the 850. you may need to set bobterm to use 850 interface. once done, bobterm will load the driver.

     

    James

×
×
  • Create New...