-
Content Count
935 -
Joined
-
Last visited
Posts posted by sup8pdct
-
-
-
Beauty! I d/l'd the .td0 a bunch of times, tried d/l'n another copy of Image Disk software, nothing was working. Your zip has the creation time a bit different, one file was ~10k longer, and it works! Thanks for getting me up to speed.
Cannot remember where i got it from. Not from the link earlier in this thread tho.
James
-
James, gave it the gold old college try and I can't get anywhere near to your results. Probably different utility version but TD2FDI bails out on everything but ATR8000.TD0. The other .TD0 get a message "error, wrong overlay code" among others.
Interesting.
I never got that at all.
One thing i did find was one image, atr8k484 i think it is, is missing the 2nd side from track 3 on and it appears to have been double sided originally. so half is missing.
Have attached the version i used.
James
-
Dump wont work. the code isn't in the rom despite what it says in the instructions.
James
-
Here is a pic of what I have managed to do with those Teledisk images + lots of work.
This is based on the ATR8000.TD0 image. This one as part of its boot up does a DIR. I had to be quick and type MEMTEST else my atr stops. Once Memtest was running, it was fine and would go for many hours. I shut it down after about 10 lines, each of which takes some time thus proving there is nothing wrong with my ATR memory and most of the Z80 processor. There may be a problem with interrupts on the Z80, or the CTC or the FDC or one of the many LS chips.
The *******111111111****** was something I added so I could see which sector was loaded. I at first had the sectors wrong on the disk and had to move some of them down by 1.
How did I do it?
Need a 360K 5 ¼ mech. Same one can be used on PC and ATR with changes required to the drive select jumper when changing from PC to ATR.
On PC:
Used teledisk to make disks of ATR8K484 and ATR8000. Label and store.
Use TD2FDI converter to extract the raw data of both.
Used winhex, examine both FDI files.
ATR8000.fdi has $FD1 bytes header. Removed those. From $3880 till end was removed. Any blocks of $E5 were removed. In ATR8000.FDI, there are incorrect bytes from $50 to $7F which are required for a working boot ie they are zero.
ATR8K484.fdi remove first $828 bytes. Copied bytes $50 to $7F to ATR8000.fdi. Note there is extra rubbish in 2 locations in ATR8K484.FDI file in the system tracks, but I only required those bytes to make a proper boot sector in ATR8000.FDI. Close ATR8K484.FDI in winhex.In ATR8000.fdi;
Change $59 from $EA to $EC
Change $72 from $E8 to $EA
Change $78 from $D2 to $D4
Why? The atr8000 cpm starts at $D400 which is the default. ATR8K484 cpm starts at $D200. These changes are for jump and load locations.
This is what is on the system tracks. Now to get it on to a disk.Using ANADISK, I formatted 1 disk. I used special format prams and created 1 sector @ 128 bytes and 9 sectors @512 bytes making sure the 128 byte sector is sector 1 and the 512 byte sectors are 2 to 10 on the 1st track. Single sided. Call this disk S1.
Formatted the 2nd track with 512 byte sectors numbered 1 to 9 single sided. The rest of the disk can be formatted at 1024 byte sectors double sided if you wish. . Note you can use ATR8000 disk created with teledisk earlier if you wish. Just don’t format 3rd track and beyond.
Using MSDOS, I Formatted 2 disks @ 180K
Back in winhex, inserted $180 bytes starting at $80 to pad this out to 512 bytes. Then wrote whole thing to disk formatted by Msdos starting at sector 1. Call this D1.Removed the first 512 bytes in winhex then wrote whole thing out to the 2nd Msdos disk starting at sector 1. Call this D2.
Back in ANADISK, I copied sectors 2 to 9, 1st track, from D1 to S1.
Then copied sector 9 1st track from D2 to sector 10 1st track on S1.
Then went to 2nd track and copied sectors 1 to 9 from D2 to S1.Now time to boot your favorite dos on the 8bit and load up a sector editor. I used SDX and DiskRX.
Plugged in the ATR and had a 360K disk mech set to D0 (D1?) On the floppy port. Removed all other devices.
Insert D1, read sector 1. Insert S1 and write same sector. Note that the data is inverted when compared to what was seen in winhex It may error on read but the data should be good.
This should have created a bootable CPM disk.Boot with this and then use disks created with teledisk for the files. Use Dinit to format some data disks. Use DDsysgen to create more system disks.
Took me ages and trying many things, dissembling etc to finally to get this working only to find my ATR not working properly

James
-
Good evening to everyone,
I am newbies to my own ATR8000 machine. I recently hooked up to my Atari 800XL NTSC. Nothing happening on my Atari screen "READY". What I need to know which IBM type or clone 5.25 disk drive to attacting at the back of ATR8000.
Yes, I see my ATR8000 has the sticker of "64" , so I assume it has built-in 64 K. It had been add-on "Reset" switch at the front.
I just wonder if I hooking up my SIO2SD device on ATR8000 and loading up any CP/M disk images from SIO2SD. So will it works to loading the CP/M software ? or MUST loading from the real floppy disk on clone or 3rd party disk drive that support to read MS-DOS and CP/M ?
I am more interesting to loading CP/M FROM SIO2SD device itself rather than physical 5.25 drive.
The only way is to have a real mech on the floppy port to load CP/M. One from a XF551 should work fine. There is a floppy emulator getting around that works like a real floppy but all data is on a sd card. The creator/seller says it can handle multi size sectors per track so should work with atr. Just need a real disk to start with to create a working image on it.
James
-
The system tracks for the atr8000 are the first 2 tracks. the data area starts on the 3rd track where the directory starts. This data area can have sector sizes from 128 to 1024 byte sectors. Just look in the DDINIT program.
I point you to this bit of code in the ATR bios on rom
;
; -- DISK BOOT LOADER --
;
BOOT:
LD IX,BOOTCB
CALL DISKDVR ;ATTEMPT TO READ BOOT SECTOR
LD A,(IX+DSKSTS)
OR A
CALL Z,0080H ;EXECUTE BOOT IF NO ERRORS
PUSH AF
CALL PNEXT
DEFB ' ERR ',NULL
POP AF
JR PUT2HX
;
;
BOOTCB: DEFB GETSEC ;opcode
DEFB 0 ;side drive number
DEFB 0 ;track
DEFB 1 ;sector
DEFW 0080H ;buffer
DEFW 128 ;num of bytes to get
DEFB 0 ;statusThis is invoked by the Boot command from the atarimon.bas program or the special 80 column monitor program loaded on the atari for atr8000 cpm.
Please note the num of bytes to get. If the rom disk routine reads more then 128 bytes ie a 512 byte sector, it will error out. I have tried it my self. I have even tried to have 10 512 byte sectors on the 1st track to see if it would work. It didn't. The only way is to have 1 sector at 128 bytes, 9 at 512 bytes on the 1st track.
I have been successful in creating a bootable cpm and running memtest program on my ATR for an hour or more from those teledisk images. Unfortunately, there is a problem somewhere with my atr. Any disk format fails and it stops sending characters back to the atari when sitting idle after a short while. To get one to work required a lot of work with anadisk, winhex teledisk to fdi converter and a disk editor on the 800XL. Any attempt to teledisk a copy of one of my working one fails as is screws up the 128 byte sector.
Programs like 22nice etc ONLY read/write to the data area. Not the system area. The data area on the teledisk images of atr cpm are mostly 1024 byte sectors.
The bit of code you showed me is what is contained on the 128 byte boot sector. The rom bios hands over to this only on a error free read of that sector.
Here is a bit more from ddsysgen program where it creates the data for the format of 1st track.
;-------------------------------------------------------setup table for 1st track
LD ($E34),A ; 0C12 32340E track 0
LD ($E53),A ; 0C15 32530E track 0
LD A,$01 ; 0C18 3E01 set 128 byte sector on 1st
LD ($E38),A ; 0C1A 32380E track to 1st sector. boot sector
LD A,$02 ; 0C1D 3E02 set 512 byte sectors start from
LD ($E57),A ; 0C1F 32570E sector 2 to 10
CALL Lb273 ; 0C22 CDF00D go setup format line data
LD A,($D44) ; 0C25 3A440D
.
RES 7,A ; 0C28 CBBF reset dden
OUT ($30),A ; 0C2A D330 floppy control lines
CALL Lb285 ; 0C2C CDC20D go format 1st track
;
;read or write sectors
;
Lb270: LD HL,$1900 ; 0C2F 210019 buffer
LD B,$0A ; 0C32 060A 10 sect
LD C,$01 ; 0C34 0E01 sect 1
Lb278: LD DE,$200 ; 0C36 110002 512 byte len
LD A,C ; 0C39 79 y
CP $02 ; 0C3A FE02 sector 2 or higher?
JR NC,Lb276 ; 0C3C 3003 0.
LD DE,$80 ; 0C3E 118000 128 byte sector
Lb276: LD A,($D47) ; 0C41 3A470D 1=read, 2=write
CALL Lb277 ; 0C44 CD0F0D go do disk operation;
;setup track format data
;
Lb273: LD DE,$5000 ; 0DF0 110050 place to put it
LD HL,$E2A ; 0DF3 212A0E format table start. single 128 byte sector
LD B,(HL) ; 0DF6 46 number of table segments
INC HL ; 0DF7 23 #
Lb296: CALL Lb295 ; 0DF8 CD1F0E ...
DJNZ Lb296 ; 0DFB 10FB dec B
LD C,$09 ; 0DFD 0E09 num of 512 byte sectors
Lb298: LD HL,$E4B ; 0DFF 214B0E 2nd part for 512 byte sectors
LD B,(HL) ; 0E02 46 number of table segments
INC HL ; 0E03 23 #
Lb297: CALL Lb295 ; 0E04 CD1F0E ...
DJNZ Lb297 ; 0E07 10FB ..
LD HL,$E57 ; 0E09 21570E load sector number from table
INC (HL) ; 0E0C 34 inc by one
DEC C ; 0E0D 0D all sectors?
JR NZ,Lb298 ; 0E0E 20EF .
LD HL,$78B0 ; 0E10 21B078 !.x
OR A ; 0E13 B7 .
SBC HL,DE ; 0E14 ED52 .R
LD B,H ; 0E16 44 D
LD C,L ; 0E17 4D M
LD H,D ; 0E18 62 b
LD L,E ; 0E19 6B k
INC DE ; 0E1A 13 .
LD (HL),A ; 0E1B 77 w
LDIR ; 0E1C EDB0 ..
RET ; 0E1E C9 .
Lb295: PUSH BC ; 0E1F C5 .
LD B,(HL) ; 0E20 46 counter
INC HL ; 0E21 23 #
LD A,(HL) ; 0E22 7E data
INC HL ; 0E23 23 #
Lb299: LD (DE),A ; 0E24 12 .
INC DE ; 0E25 13 .
DJNZ Lb299 ; 0E26 10FC ..
POP BC ; 0E28 C1 .
RET ; 0E29 C9 .Unfortunately, life has gotten in the way so i haven't been able to to do much to this for a while.
James
-
Do you have a star raiders cart? Put that in and see what happens.
James
-
just a bit of info. DDSYSGEN formats the 1st 2 tracks regardless of what was formatted before. The 1st sector of the 1st track is 128 bytes. It has to be due to bios to boot strap cpm has been setup to read a 128 byte sector. The next 9 sectors are 512 byte. The 2nd track has the same setup but the 128 byte sector is numbered 100 and the 512 byte sectors have the numbers reduced by 1 to reflect the change.
Here is the table used to create the track format line code. The program makes a few changes between the 1st and 2nd tracks and they are noted in the comments.
;format data. 1 128 byte sector and 9 512 byte sectors per track for 2 tracks
; 1st track has 128 byte as sector 1. 2nd track has 128 byte sector as sector $64.
; the 128 byte sector on 2nd track contains no data.
;128 byte sector x 1
DEFB 10H ; 0E2A 10 num of table segments
DEFB 20H,4Eh ; 0E2B 204E GAP 1
DEFB 0CH,00 ; 0E2D 0C00 data. post index gap
DEFB 03,F5H ; 0E2F 03F5 GENERATE SYNC=A1 HEX
DEFB 01,FEH ; 0E31 01FE GENERATE ID ADDRESS MARK
DEFB 01,00 ; 0E33 0100 TRACK#. Change to 1 2nd track
DEFB 01,00 ; 0E35 0100 side#
DEFB 01,00 ; 0E37 0100 sector#.1 change to 64 for 2nd track
DEFB 01,00 ; 0E39 0100 length. 128 bytes
DEFB 01,F7H ; 0E3B 01F7 generate crc
DEFB 16H,4EH ; 0E3D 164E FIRST PART OF GAP 2
DEFB 0CH,00 ; 0E3F 0C00 SECOND PART OF GAP 2
DEFB 03,F5H ; 0E42 03F5 GENERATE SYNC=A1 HEX
DEFB 01,FBH ; 0E43 01FB data Address mark
DEFB 80H,E5H ; 0E45 80E5 empty sector data fill
DEFB 01,F7H ; 0E47 01F7 GENERATE CRC BYTES
DEFB 32h,4Eh ; 0E49 324E N
;512 byte sector x 9
DEFB 10H ; 0E4B 10 num of table segments
DEFB 0CH,00 ; 0E4C 0C00 .
DEFB 03,F5H ; 0E4E 03F5 3 x f5
DEFB 01,FEH ; 0E50 01FE GENERATE ID ADDRESS MARK
DEFB 01,00 ; 0E52 0100 track#---------change to 1 for 2nd track
DEFB 01,00 ; 0E54 0100 Side#
DEFB 01,00 ; 0E56 0100 sect#. 2 or change to 1 for 2nd track.
DEFB 01,02 ; 0E58 0102 length of sector
DEFB 01,F7H ; 0E5A 01F7 generate crc
DEFB 16H,4EH ; 0E5C 164E FIRST PART OF GAP 2
DEFB 0Ch,00 ; 0E5E 0C00 SECOND PART OF GAP 2
DEFB 03,F5H ; 0E60 03F5 GENERATE SYNC=A1 HEX
DEFB 01,FBH ; 0E62 01FB data Address mark
DEFB 00,E5H ; 0E64 00E5 256 x E5. sector fill data 1st half
DEFB 00,E5H ; 0E66 00E5 256 x E5. sector fill data 2nd half
DEFB 01,F7H ; 0E68 01F7 GENERATE CRC BYTES
DEFB 32H,4EH ; 0E6A 324E N
DEFB 47H,20H ; 0E6C 4720 G
DEFB FAH,C9H ; 0E6E FAC9 end gap. continue till IP?I had an image that booted, re previous post. I have tried to teledisk that image to a new disk but have found that teledisk screws up the 128 byte sectors and only half fills that sector. Anadisk also cannot handle the 128 byte sector and does the same thing. It is either the programs or the controller cannot handle it properly.. I have found teledisk can read the disk ok as converting it to a FDI shows it to be ok.
End result is teledisk won't be able to create a bootable atr8000 cpm disk. It can come close but the 128 byte sector will need to be written by the ATR it self. Almost any disk edit software should be able to do this.
James
-
I believe the cable at the joiner end has been moved over 1 before being crimped on to make the signals work out properly.
james
-
-
I have both a duel drive and xf upgrade for 5 1/4 from css. The duel drive has a double sided edge connector with 2 wires soldered to it for ds2, ds3 . A cable connects to this board for the 2 drive mechs.
The single drive upgrade uses the black blob for copy protection of the eprom code. The code for this however is easy to find and disable.
James
-
. When the Percom is doing double-density, ALL the sectors are 256 bytes instead of 128, but the first three sectors only return 128 bytes of data for backwards compatibility with the single-density boot.
You will find that with all DD drives. Drive firmware will return 128 bytes for sectors 1-3 tho formatted to 256 bytes.
James
-
Sparta dos x 4.2 will use a lot of ram on the 800 as there is nowhere to hide any of it., much more then dos2. I must assume that 4.46 will be similar.
James
-
It depends on what computer the eprom writer is on. On an 8bit, any binary headers and segment data are stripped out by dos or the burner program so whats in memory is what will be written to the eprom. On any other computer, the binary load header and any segment data must be stripped out. I personally use Winhex to remove the 6 byte header.
James
-
It wont work even if power is supplied. The 1064 will switch it self in from $4000 till end of memory effectly mirroring the same memory as internal. This has bad written all over it. Haveing 2 chips setting the 6502 data lines high or low at once is never a good idea.
James
-
here is the gt diag disk. boot with basic on i think. it may have its own basic on it. cannot remember.
James
-
Try here
http://www.retrobits.net/atari/indus.shtml
For most of the disks,.
I put the indus gt diag disk out there somewhere. Cannot find it at the moment
http://trub.atari8.info/index.php?ref=indus_cpm_en
Has stuff about cpm and ram charger
James
-
OK, probably will distract you more then help. I went back and looked hard at that CSAVE I made and what it looks like is it stored the DDSYSGEN program AND the relocated SYSTEM.SWP file! Ready to write out I hope but I think it will only write on a true ATR8000 because of calls to the monitor/hardware specific. Also you have to allow for my ability to screw up. I'm pretty sure I relocated it to $D400 but I see in the ATR8000 ROM listing I maybe hadda oughta put it at $D200.
I'll attach it so you can take a peek at it if you wish. Using MS DOS debug, the file starts at $100 naturally with the DDSYSGEN but at $1900 what looks to be the CPM 2.2 file starts. Not sure if you are familiar with DEBUG, but I'm guessing you will have something to look at the file with. You can even use The Joyful Coder's Memopad with the offset to CPM at $1800.
I may not get to it today as I have another one of them busy days that get in the way. I'll just load the file into DEBUG on my work computer and write out memory from $1900 to a MS DOS formatted disk and see if it boots on an ATR.
Rick
According to the docs. $D400 is the normal ATR CPM system start address. The $D200 is a special one (why?) I have winhex so looking and comparing is a doddle for me.
I will look at your file when time permits,
James
-
My 1st thought was ARCHIVER, but i thought that they where a 4K chip which requires some mods to the side board. But maybe not.
I cannot think of a reason to epoxy the 6507, unless it is special????
James
-
I am trying to create bootable cpm disks for those that don't have any (like me). DDsysgen has an option to read system tracks. I know where in memory it is stored, so it won't be too hard to make it create system tracks using the ATR's Z command by dumping ddsysgen and system tracks to memory and running from a particular address.
Creating the data area however is a little bit more tricky. Dinit has a couple of calls to the CPM BIOS that sets some drive parameters. Need to work it out some more.
Now that i am back at work, I will be able to start looking at getting my atr fixed, But Trouble and Strife is spending all my $$$$$

James
-
Actually, the ATR8000 directory starts on track 3, sector 1 (assuming track 1 is first track on disk). The CPM system can be in a different location depending on the system.
Eg. The standard atr cpm system starts at $D400 making it a 60K system (as they call it). The IndusGT CPM starts at $E400 making it a 64K system. One of the ATR8000 disks has the CPM system starting at $D200. Don't know why. The BIOS also moves with the cpm system.
The deblock.mac file is the old version sorry to say.
I have dissembled the ddsysgen file and am currently working through it. I should be able to change it slightly to write system tracks without cpm loaded first.
This program formats the 1st 2 tracks side zero for the special system tracks format then writes them out and checks them.
I have managed to create a bootable (i think) system disk but my ATR is playing up?.
Every time i try teledisk to copy one of my working disks, it doesn't manage to write the 128 byte 1st sector properly (at least on my system) It seams to read it properly tho.
James
-
I did this some 15 years ago. I used several copy programs. Took note of any bad sectors and tried several drives to read those sectors using a sector editor.
James
-
I for the first time broke out the interface (1st run) to give it a go. Plugged it in, It asked for drivers, opened up cd case only to find it empty..........
I cannot remember opening it to have a look. I have looked through all my cds and haven't found it. What was printed on the cd itself so i know what to look for???
James

ATR-8000 (and other) CP/M System disks here
in Atari 8-Bit Computers
Posted
Those with a working ATR8000 and a floppy mech connected, can you please try this file. Rename from atr.TXT to atr.EXE.
Use what ever means to load and run it from a floppy or device other then 1. Have the ATR8000 connected floppy drive as D1.
Insert a blank formatted floppy into the ATR DD prefered. Then run this program.
What does it do?
This uploads a slightly modified version of DDSYSGEN with an attached CP/M system ready to write out to a floppy, to the ATR8000 and then runs it. As mine doesn't want to format disks properly, it starts to format then errors out, meaning that something is working.
It is very rough with no error checking what so ever and the atari end ends in a loop so reset will need to be pressed. The atr appears to end with a reset but it is advised to press reset anyway, just in case
If it works, you should have a bootable CPM system with no files however.
Please advise on the results.
James
atr.txt