-
Content Count
935 -
Joined
-
Last visited
Posts posted by sup8pdct
-
-
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
-
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
-
1
-
-
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
-
Not talking about double.
Remember enhanced is 26 128 byte sectors using MFM. I dont see where this is checked and 1050 mode set if required.
James
-
I ask this because the special format command doesn't check for 1050 emulation. It sees 128 bytes sectors and assumes single density but with 26 sectors. So my guess is it wont work.
James
-
Did you try enhanced density format with skewed sectors? I don't believe The code properly supports that. Should be an easy fix tho.
James
-
Looking through the code, it would appear that special format command doesn't appear to handle 1050 format properly. Am i correct on this?
James
-
Sparta dos and usd drives will format std disks with this faster sector layout (ie no to skewed sectors)
James
-
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
-
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 FNW0I think it checks the 1st byte of the sector 128/256 times, not the whole sector.
James
-
Can you load the source here?
James
-
Cannot wait to get hold of this and disassemble it..
James
-
It is possible using the X command on the indus to read the 1st 3 sectors as 256 bytes and send them to the atari. Will require a someone to write a little program for the atari and the indus.
James
-
Check out the schematic of the 400. Only the trigger pin of port 4 is connected to antic for light pen. All others have all triggers connected to antic via a buffer. The poor 400 doesn't. My 400 is like this.
James
-
2
-
-
Would be very interested to see how many work on the 400. The light gun/pen input is only on joystick port 4.
James
-
Does the cassette drive save as well as read? If it does,i would be looking at the command line which comes from PIA.
James
-
The FDC controller used has an inverted data bus. That is why commands, sector numbers are EOR with $FF. All sector data however wasnt inverted. All other atari drives used non inverting fdc which is reason why newer and 3rd party drives invert the sector data in an extra step before storing/reading from disk.
James
-
2
-
-
I thought the way indus booted cpm was to press 2 buttons on the front of the drive it self. Indus needs ramcharger. is that emulated?
James
-
1
-
-
Pal only ever had Rev A os. To best of my knowledge, no Pal 400/800 had a 6502B.
James.
-
2
-
-
Checkout
http://atariage.com/forums/topic/129969-indus-gt-rom-disassembly/
@ location 33 are the commands for FDC1770
@ c37 are commands for FDC2797.
The firmware supports both but i am not sure the commands for 1770 are fully correct.
James
-
WART = Weird Atari Rotating Thing.
No GT was shipped with a wd1770 tho the firmware may support it. I dissembled it but thought a command was wrong for the wd1770.
James
-
1
-
-
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
-
How and to what is the Atari internal speaker hooked up?
On 400/800, there is an internal speaker for gtia sound. all rest have gtia sound routed to audio out/rf modulator
James
-
I believe usd 1050 closely follows the FDC279x data sheet for DD format. Also indus appears to be very similar.
James

Indus GT issue
in Atari 8-Bit Computers
Posted
Sounds like a capicator issue. Where is unknown. I had a similar issue with my 1050. Turned out to be an issue with the variable cap for the fdc being slightly out of adjustment.
James