-
Content Count
935 -
Joined
-
Last visited
Posts posted by sup8pdct
-
-
-
Here is ATmas macro assembler disk image. The menu item run assembler doesn't seam to work. Do load instead.
I have no idea how to post it to atarimania. will scan the book/ instructions soon.
James
-
In your idle time, you could program up an archiver or happy clone for the indus with ramcharger installed
:-DJames
-
3
-
-
I personally have found that a transistor array chip on the mother board that amplifies both audio and video can pick up noise not only from within itself (video noise in audio) but from other sources. Some chips are better then others. If the computer works, I would be looking at this area. Maybe better power supply filtering.
James
-
Just listened to #17. mention was made od SIO2??? devices.
I have a sio2USB http://www.realdos.net/sio2usb.html
It works very well.
James
-
I have just heard the interview with bill wilkinson. The time lines he talks about in regards to DOS 3 don't make sense.
He said dos 3 was written near the end of oss and last gasp for the 8 bit line which was near 1988. DOS3 came out with the
1050 in 1983. I personally don't think bill wrote DOS3 and it would seam to me that he may be confusing DOS3 and DOSXE.Maybe someone can email him to confirm my thoughts.
James -
The XF551 uses the 8030/8040 processor, when I am correct this drive uses the 8051 an newer one.
Another feature when I remember correctly was some kind of speed control, did run at 288 instead of 300 like the XF...
The schematic says an 8050, same as XF551. Schematic also says an extra ram chip 6116. assuming schematic is correct.
James
-
Hi guys.
In ep 16?, mention was made of printer numbers that the os could support. Did you know that most atari direct connect printers respond to P as well as a a unique P number?
I direct you to an article in compute 073 page 112. Makes for interesting reading.
Any one tried the X series printers for unique numbers?
James
-
If you can get a salt cart, plug it in and run ram test.
If you cannot get one, I would try another memory card. A long shot is to swap both pia and gtia chips. The processor most likely cannot be swapped over but that depends on how late the 400 was built and if it is PAL or nojames
-
Only difference between 400 and XL antic is number bits for refresh. I think latter antics will work in early computers, but not other way round due not to refreshing ram properly. I could be wrong tho.
James
-
Looks to me like a faulty ANTIC chip, or maybe ram. That black line towards the bottom should not be there. Dont swap ram chips with 800xl. The 400 std ram chips have 12v on one of the pins that will fry the ones from XL. I would try swaping antic first.
James
-
1
-
-
Digging through the code more, It would appear the format code and sector divide for read/write is fixed at 1280 sectors, 16 sector per track, despite status bits supporting 26 and 18 sector per track and support for 128/256 byte sectors. Wondering if it is work in progress and this is a proof of concept version.
James
-
Below is a small snippet of code from similar locations in each rom. Apart from address difference of the 351 code , It does the same thing.
XF351...
mov a,#80h
nop
nop
nop
nop
jf0 X025f
nop
nop
X024c: nop
nop
nop
jf0 X025f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
X025f: clr c
XF551 1st version, worked for ntsc, not PAL
mov a,#80h
nop
nop
nop
nop
jf0 X0259
nop
nop
X0246: nop
nop
nop
jf0 X0259
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
X0259: clr c
XF551 Patched to work on PAL
MOV A,#80H
NOP
NOP
NOP
NOP
JF0 A259
NOP
NOP
A246 NOP
NOP
NOP
JF0 A259
NOP
NOP
NOP
NOP
NOP
JMP A2EE
NOP ;never gets here
A253 NOP
NOP
NOP
NOP
NOP
NOP
A259 CLR C
"
"
A2EE JMP A253 "As you can see, the PAL version (which works on ntsc as well) has a JuMP to end of that pages code then jumps back. The affect is to add one machine cycle to the timing of receiving of each bit. There are 3 locations where one machine cycle had to be added. The above code is 1/2 of what is used to receive data frames. Command frames use very different code but it too has been patched to add in one cycle.
James
-
Its sio code is same as early xf551. It wouldnt work on pal. Atari patched the code to make it work by adding one machine cycle to the timing routines. I can show you if you like.
James
-
The code is very similar with all 8040 pins appearing to have the same function between the 2. My guess is the XF351 was done first then the XF551 was done latter using the code from the 351 as a start point. Many routines are the same, some even in the same location. So i would say yes. BUT, it wont work on PAL computers.
James
-
I found D48 hidden in here. http://cd.textfiles.com/psl/pslv2nv06/PRGMMING/DOS/ASM/
as part of another archive.
Where i originally got it from, i cannot remember.
attached is D48. run from winblows command prompt or dosbox for PC
James
-
Bob.
Could you please try to format a disk DS DD 40 tracks, 16 sectors per track. This should get a working format of 1280 odd sectors with the XF351.
The single density format you done, does dos think it was successful but it wasn't? Only way to tell is to read beyond sector 720 and see what happens.
James
-
Hello sup8pdct,
I do have HexEditor XVI32 application that I used to see disassembler but I don't see any English Word above in long .bin listed ? All I see is Hex and oddities characters & numbers ??
You wont see much with a hex editor. The above listing is from a dissembler called D48.
James
-
Digging a bit more, it appears the full single sided 80 track disk is treated as a double sided 40 track disk.
Also the percom block can return either 26, 18 or 16 sectors per track. Need to dig more to see which densitys do what.
The percom block aux byte returns $48 (H) if in high speed mode or $41 (A) in normal speed mode. The XF551 returns $41 always.
James
Edit: It won't work on PAL computers. The sio routines are not patched.
-
The other 3 commands are R, P, W with high bit set. It doesn't appear that high bit set means anything at this point. The H command appears to set high speed sio, a similar speed to the XF551. All bytes sent/returned after the H command is issued with a $01 in one of the aux bytes will be at high speed except for the command frame. Once high speed is set, Instead of A (ack) returned for command Acknowledge, a H is returned. To turn off, issue a H command with 0 in aux bytes.
A custom dos required for this baby.
James
dissembley below for those interested. Scant comments tho.
;
; D48 V3.4.1 8048 Disassembly of romc7b5.bin
; 2014/11/19 05:14
;
org 0
;
sel mb0
jmp X0175
;
sel rb0
sel mb0
jmp X0038
;
sel mb0
dis tcnti
stop tcnt
call X0037
X000c: mov r0,#0fbh
mov @r0,#2
X0010: mov r7,#0c2h
strt t
anl p2,#0f8h
en i
X0016: jtf X001a
jmp X0016
;
X001a: djnz r7,X0016
X001c: anl p1,#0dch
orl p1,#20h
movx a,@r0
cpl a
jb7 X0028
anl p2,#0f7h
anl p1,#0efh
X0028: anl p2,#0efh
X002a: jmp X002a
;
X002c: en i
in a,p1
anl a,#10h
jz X0028
mov a,r7
jnz X0016
jmp X001c
;
X0037: retr
;
X0038: anl p1,#7fh
dis tcnti
dis i
call X0037
in a,p2
anl a,#7
jz X0060
mov r0,#0fbh
mov @r0,#4
mov r7,#0c2h
strt t
anl p2,#0f8h
xrl a,#4
jz X0060
xrl a,#3
jz X0060
in a,p1
anl a,#10h
jz X0060
anl p1,#0dch
orl p1,#0
mov a,#0d0h
movx @r0,a
X0060: mov r0,#0f9h
mov r1,#0
mov r2,#5
X0066: jni X0076
jmp X002c
;
X006a: mov @r0,a
dec r0
add a,r1
addc a,#0
mov r1,a
mov r3,#5
X0072: djnz r3,X0072
jt0 X00bc
X0076: jnt0 X0066
mov a,#80h
mov r3,#7
X007c: djnz r3,X007c
X007e: nop
mov r3,#8
X0081: djnz r3,X0081
clr c
jt0 X0089
cpl c
jmp X008c
;
X0089: nop
nop
nop
;
X008c: rrc a
jnc X007e
djnz r2,X006a
xrl a,r1
jnz X00bc
nop
mov r3,#6
X0097: djnz r3,X0097
jt0 X00bc
jni X009f
jmp X002c
;
X009f: mov r1,#31h
in a,p2
anl a,#0c0h
xrl a,#0c0h
jz X00b3
inc r1
xrl a,#40h
jz X00b3
inc r1
xrl a,#0c0h
jz X00b3
inc r1
X00b3: mov r0,#0f9h
mov a,@r0
xrl a,r1
jnz X00bc
sel mb0
jmp X0100
;
X00bc: jni X00bc
jmp X002c
;
org 100h
;
X0100: orl p2,#20h
mov r0,#0f8h
mov a,@r0
xrl a,#52h ; R read
jz X010d
xrl a,#20h ; r small r
jnz X0112
X010d: orl p2,#1
sel mb1
jmp X0900
;
X0112: xrl a,#22h ; P put
jnz X011b
X0116: orl p2,#2
sel mb1
jmp X0900
;
X011b: xrl a,#7 ; W write
jnz X0124
X011f: orl p2,#3
sel mb1
jmp X0900
;
X0124: xrl a,#4 ; S status
jnz X012d
orl p2,#7
sel mb0
jmp X03a8
;
X012d: xrl a,#72h ; ! format
jnz X0136
orl p2,#5
sel mb0
jmp X0157
;
X0136: xrl a,#6fh ; N percom block
jnz X013f
orl p2,#7
sel mb0
jmp X0421
;
X013f: xrl a,#1 ; O percom block
jnz X0148
orl p2,#4
sel mb0
jmp X048b
;
X0148: xrl a,#7 ; H ?????
jnz X0151
orl p2,#7
sel mb0
jmp X0400
;
X0151: xrl a,#6ah ; " format
jnz X015a
orl p2,#5
X0157: sel mb0
jmp X0500
;
X015a: anl p2,#0dfh
xrl a,#0f0h ; $d2 R with high bit set
jz X010d ; jump to read
xrl a,#2 ; $d0 P with high bit set
jz X0116 ; jump to put
xrl a,#7 ; $d7 W with high bit set
jz X011f ; jump to write
X0168: mov r0,#0fbh
mov a,#1
mov @r0,a
mov a,#4eh ; Nak
sel mb0
call X020b ; go send nak
sel mb0
jmp X002c
;
X0175: dis i
dis tcnti
mov a,#2ch
outl p1,a
mov a,#0e0h
outl p2,a
sel rb0
clr f0
clr f1
mov r0,#10h
call X01cb
mov r0,#0fbh
mov @r0,#0
anl p1,#0efh
mov r0,#0f9h
X018c: djnz r0,X018c
orl p1,#10h
anl p1,#0dch
orl p1,#0
mov a,#0
movx @r0,a
call X01b5
mov r1,#0ch
X019b: anl p1,#0dch
orl p1,#0
mov a,#40h
movx @r0,a
call X01b5
djnz r1,X019b
anl p1,#0dch
orl p1,#0
mov a,#0
movx @r0,a
call X01b5
mov a,#2ch
outl p1,a
en i
X01b3: jmp X01b3
;
X01b5: mov r0,#95h
stop tcnt
clr a
mov t,a
strt t
jtf X01bd
X01bd: in a,p1
anl a,#4
jz X01c3
ret
;
X01c3: jtf X01c7
jmp X01bd
;
X01c7: djnz r0,X01bd
stop tcnt
ret
;
X01cb: stop tcnt
clr a
mov t,a
strt t
jtf X01d1
X01d1: jtf X01d5
jmp X01d1
;
X01d5: djnz r0,X01d1
stop tcnt
ret
;
org 200h
;
X0200: stop tcnt
clr a
mov t,a
jtf X0205
X0205: mov a,#48h ; H high speed ack return?
jf0 X020b
mov a,#41h ; Ack
X020b: clr f1
X020c: jni X020c
jni X020c
en i
orl p1,#80h
clr c
cpl c
nop
nop
nop
X0218: mov r6,#8
X021a: djnz r6,X021a
rrc a
jc X0223
orl p1,#80h
jmp X0227
;
X0223: anl p1,#7fh
jmp X0227
;
X0227: clr c
jnz X0218
ret
;
X022b: en tcnti
strt t
X022d: jnt0 X022d
clr a
clr f1
nop
nop
jmp X023f
;
X0235: jt0 X02b9
X0237: jnt0 X0237
inc r0
mov @r0,a
dec r0
add a,r1
addc a,#0
X023f: mov r1,a
X0240: clr a
mov t,a
mov a,#80h
nop
nop
nop
nop
jf0 X025f
nop
nop
X024c: nop
nop
nop
jf0 X025f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
X025f: clr c
jt0 X0265
cpl c
jmp X0268
;
X0265: nop
nop
nop
;
X0268: rrc a
jnc X024c
jf0 X027b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
;
X027b: jf1 X028a
djnz r0,X0235
jt0 X02b9
X0281: jnt0 X0281
xch a,r1
add a,r1
addc a,r0
mov r0,a
cpl f1
jmp X0240
;
X028a: clr f1
nop
jt0 X02b9
X028e: jnt0 X028e
stop tcnt
dis tcnti
mov t,a
add a,r0
addc a,#0
clr c
cpl c
nop
nop
nop
nop
nop
;
jf0 X02b4
nop
X02a0: nop
nop
nop
nop
;
jf0 X02b4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
;
X02b4: rrc a
jc X02bc
jt0 X02be
X02b9: sel mb0
jmp X000c
;
X02bc: jt0 X02b9
X02be: clr c
jnz X02a0
mov r0,#83h
X02c3: djnz r0,X02c3
mov r0,#83h
X02c7: djnz r0,X02c7
orl p1,#80h
mov a,#41h
clr c
cpl c
nop
X02d0: nop
nop
;
jf0 X02d8
mov r0,#6
X02d6: djnz r0,X02d6
X02d8: rrc a
jc X02df
orl p1,#80h
jmp X02e3
;
X02df: anl p1,#7fh
jmp X02e3
;
X02e3: clr c
jnz X02d0
in a,p2
anl a,#7
xrl a,#4
jz X02f0
sel mb1
jmp X0959
;
X02f0: sel mb0
jmp X0494
;
org 300h
;
X0300: mov a,psw
orl a,#1
mov psw,a
mov a,#45h
jf1 X030e
mov a,psw
anl a,#0feh
mov psw,a
mov a,#43h
X030e: orl p1,#80h
clr c
cpl c
nop
;
org 315h
;
X0315: nop
;
org 317h
;
jf0 X0327
nop
;
org 327h
;
X0327: rrc a
jc X032e
orl p1,#80h
jmp X0332
;
X032e: anl p1,#7fh
jmp X0332
;
X0332: clr c
jnz X0315
mov a,r0
jz X039e
mov r0,#9eh
X033a: djnz r0,X033a
mov r0,#9eh
X033e: djnz r0,X033e
xch a,r0
clr f1
X0342: orl p1,#80h
add a,@r0
addc a,#0
xch a,@r0
clr c
cpl c
jf0 X035f
jmp X0353
;
X034e: nop
;
org 350h
;
jf0 X0360
nop
X0353: nop
;
org 35fh
;
X035f: nop
X0360: rrc a
jc X0367
orl p1,#80h
jmp X036b
;
X0367: anl p1,#7fh
jmp X036b
;
X036b: clr c
jnz X034e
djnz r0,X037a
jf1 X038d
mov a,t
xch a,r1
inc r0
cpl f1
jf0 X0342
jmp X0384
;
X037a: inc r0
mov a,@r0
dec r0
jf0 X0342
nop
;
org 384h
;
X0384: nop
;
org 38bh
;
jmp X0342
;
X038d: mov a,r1
jf0 X030e
nop
;
org 39ch
;
jmp X030e
;
X039e: mov a,psw
jb0 X03a5
mov r0,#0fbh
mov @r0,#0
X03a5: sel mb0
jmp X0010
;
X03a8: sel mb0
call X0200
sel mb0
mov r0,#83h
X03ae: djnz r0,X03ae
mov r0,#83h
X03b2: djnz r0,X03b2
mov r3,#0
in a,p1
anl a,#8
jnz X03c2
mov r3,#80h
in a,p2
jb5 X03c2
mov r3,#0a0h
X03c2: mov r0,#0fbh
mov a,@r0
orl a,r3
mov r3,a
mov r2,#0ffh
in a,p1
anl a,#10h
jz X03db
anl p1,#0dch
orl p1,#20h
movx a,@r0
cpl a
mov r2,a
jb7 X03db
mov a,r3
orl a,#10h
mov r3,a
X03db: mov r1,#78h
mov a,#0
mov t,a
mov r0,#3
clr f1
sel mb0
jmp X0300
;
org 400h
;
X0400: mov r0,#0f7h
mov a,@r0
jz X040d
xrl a,#1
jnz X041e
clr f0
cpl f0
jmp X040e
;
X040d: clr f0
X040e: sel mb0
call X0200
sel mb0
mov r0,#83h
X0414: djnz r0,X0414
mov r0,#83h
X0418: djnz r0,X0418
clr f1
sel mb0
jmp X0300
;
X041e: sel mb0
jmp X0168
;
; PERCOM BLOCK
;
X0421: sel mb0
call X0200
sel mb0
mov r0,#83h
X0427: djnz r0,X0427
mov r0,#83h
X042b: djnz r0,X042b
mov r0,#0bh
mov @r0,#28h
dec r0
mov @r0,#0
dec r0
mov @r0,#0
dec r0
in a,p2
anl a,#30h
xrl a,#30h
mov @r0,#1ah
jz X0451
mov @r0,#12h
in a,p2
jb5 X0451
dis i
orl p2,#20h
in a,p2
jb5 X044e
mov @r0,#10h
X044e: anl p2,#0dfh
en i
X0451: dec r0
mov @r0,#0
in a,p2
anl a,#30h
xrl a,#10h
jnz X045d
mov @r0,#1
X045d: dec r0
mov @r0,#0
in a,p2
anl a,#30h
xrl a,#20h
jnz X0469
mov @r0,#4
X0469: dec r0
mov @r0,#0
dec r0
mov @r0,#80h
in a,p2
jb5 X0478
inc r0
mov @r0,#1
dec r0
mov @r0,#0
X0478: dec r0
mov @r0,#1
dec r0
mov @r0,#48h
jf0 X0482
mov @r0,#41h
X0482: clr a
mov t,a
mov r1,a
mov r0,#0bh
clr f1
sel mb0
jmp X0300
;
X048b: sel mb0
call X0200
sel mb0
mov r0,#0bh
sel mb0
jmp X022b
;
X0494: mov r0,#8
dis i
in a,p2
orl a,#0cfh
mov r1,a
orl p2,#30h
mov r2,#0efh
mov a,r6
jnz X04aa
mov a,r7
jnz X04dd
in a,p2
jb5 X04d8
jmp X04dd
;
X04aa: xrl a,#4
jnz X04dd
mov r2,#0dfh
mov a,r7
jz X04c2
xrl a,#1
jnz X04dd
orl p1,#40h
in a,p1
anl p1,#0bfh
anl a,#40h
jnz X04d8
jmp X04dd
;
X04c2: mov r2,#0ffh
mov a,@r0
xrl a,#1ah
jnz X04d6
mov a,r5
jnz X04d6
mov a,r4
xrl a,#80h
jnz X04d6
in a,p2
jb5 X04d8
jmp X04dd
;
X04d6: mov r2,#0cfh
X04d8: mov a,r2
mov r1,a
clr f1
jmp X04e3
;
X04dd: clr f1
cpl f1
mov r0,#0fbh
mov @r0,#4
X04e3: in a,p2
anl a,r1
orl a,#0c0h
outl p2,a
en i
mov r0,#83h
X04eb: djnz r0,X04eb
sel mb0
jmp X0300
;
org 500h
;
; FORMAT
;
X0500: anl p1,#0b7h
sel mb0
call X0200
sel mb0
anl p2,#0f7h
anl p1,#0efh
mov r0,#83h
X050c: djnz r0,X050c
orl p1,#10h
mov r0,#83h
X0512: djnz r0,X0512
anl p1,#0dch
orl p1,#0
mov a,#0d0h
movx @r0,a
mov r0,#33h
X051d: djnz r0,X051d
clr a
mov @r0,a
dec r0
mov @r0,a
cpl a
dec r0
mov @r0,a
dec r0
mov @r0,a
mov r0,#0fbh
mov @r0,#4
clr f1
X052d: anl p2,#0f7h
anl p1,#0dch
orl p1,#0
mov a,#0
movx @r0,a
mov r0,#0c2h
clr a
mov t,a
strt t
X053b: jtf X0555
X053d: in a,p1
anl a,#4
jz X053b
stop tcnt
anl p1,#0dch
orl p1,#20h
movx a,@r0
anl p1,#0dch
orl p1,#1
clr a
movx @r0,a
mov r2,a
mov r0,#83h
X0551: djnz r0,X0551
jmp X056b
;
X0555: djnz r0,X053d
X0557: stop tcnt
anl p1,#0dch
orl p1,#0
mov a,#0d0h
movx @r0,a
mov r0,#33h
X0561: djnz r0,X0561
clr f1
cpl f1
mov a,#0ffh
mov r0,a
sel mb0
jmp X0300
;
X056b: anl p1,#0dch
orl p1,#3
mov a,r2
movx @r0,a
anl p2,#0f7h
anl p1,#0dch
orl p1,#0
mov a,#10h
movx @r0,a
clr a
mov t,a
jtf X057e
X057e: mov r0,#40h
X0580: jtf X058f
X0582: in a,p1
anl a,#4
jz X0580
stop tcnt
anl p1,#0dch
orl p1,#20h
movx @r0,a
jmp X0593
;
X058f: djnz r0,X0582
jmp X0557
;
X0593: mov r4,#10h
mov r5,#0f8h
mov a,r4
mov r0,a
add a,#7fh
mov r6,a
mov r1,a
X059d: mov @r1,#0
dec r1
mov a,r1
jb7 X059d
mov a,r6
jmp X05ab
;
X05a6: mov a,r1
add a,r5
X05a8: jb7 X05ab
add a,r4
X05ab: mov r1,a
mov a,@r1
jz X05b3
dec r1
mov a,r1
jmp X05a8
;
X05b3: mov a,r0
cpl a
add a,r4
add a,#2
mov @r1,a
djnz r0,X05a6
mov a,r6
mov r1,a
jmp X0600
;
org 600h
;
X0600: jf1 X0623
mov a,r2
add a,#0d8h
mov a,#0f4h
jnc X060b
mov a,#0f6h
X060b: anl p1,#0dch
orl p1,#0
movx @r0,a
anl p1,#0dch
orl p1,#3
clr a
mov t,a
jtf X0618
X0618: mov a,#40h
mov a,#4eh
mov r0,#3bh
mov r4,#40h
strt t
jmp X0702
;
X0623: stop tcnt
clr a
mov t,a
mov r0,#0
mov r4,#40h
anl p1,#0dch
orl p1,#1
mov a,r2
movx @r0,a
anl p1,#0dch
orl p1,#2
mov a,@r1
dec r1
movx @r0,a
anl p1,#0dch
orl p1,#0
mov a,#80h
movx @r0,a
anl p1,#0dch
orl p1,#23h
strt t
X0643: jtf X0666
X0645: jnt1 X0643
jnt1 X0643
X0649: movx a,@r0
djnz r0,X0645
clr a
mov t,a
jtf X0650
X0650: jtf X066c
in a,p1
anl a,#4
jz X0650
stop tcnt
anl p1,#0dch
orl p1,#20h
movx a,@r0
anl a,#3ch
jnz X066c
mov a,r1
jb7 X0623
jmp X066e
;
X0666: jnt1 X066a
jt1 X0649
X066a: djnz r4,X0645
X066c: jmp X0557
;
X066e: inc r2
mov a,r2
xrl a,#50h
jz X0676
jmp X056b
;
X0676: jf1 X067b
cpl f1
jmp X052d
;
X067b: stop tcnt
clr f1
mov a,#7fh
mov r0,a
mov @r0,#0ffh
dec r0
mov @r0,#0ffh
inc r0
sel mb0
jmp X0300
;
org 700h
;
X0700: jtf X07c4
X0702: jnt1 X0700
jnt1 X0700
X0706: movx @r0,a
djnz r0,X0702
mov t,a
jtf X070c
X070c: jt1 X0712
X070e: jtf X07c2
jnt1 X070e
X0712: movx @r0,a
X0713: mov r0,#0ch
clr a
jt1 X071c
X0718: jtf X07c2
X071a: jnt1 X0718
X071c: movx @r0,a
djnz r0,X071a
mov a,#0f5h
jt1 X0727
X0723: jtf X07c2
jnt1 X0723
X0727: movx @r0,a
mov r0,#2
X072a: jtf X07c2
X072c: jnt1 X072a
movx @r0,a
djnz r0,X072c
mov a,#0feh
jt1 X0739
X0735: jtf X07c2
jnt1 X0735
X0739: movx @r0,a
mov a,r2
X073b: jtf X07c2
jnt1 X073b
movx @r0,a
mov a,#1
X0742: jtf X07c2
jnt1 X0742
movx @r0,a
mov a,@r1
dec r1
X0749: jtf X07c2
jnt1 X0749
movx @r0,a
mov a,#1
X0750: jtf X07c2
jnt1 X0750
movx @r0,a
mov a,#0f7h
X0757: jtf X07c2
jnt1 X0757
movx @r0,a
mov r0,#16h
mov a,#4eh
X0760: jtf X07c2
X0762: jnt1 X0760
movx @r0,a
djnz r0,X0762
mov r0,#0ch
clr a
mov t,a
X076b: jtf X07c2
X076d: jnt1 X076b
movx @r0,a
djnz r0,X076d
mov a,#0f5h
jt1 X077a
X0776: jtf X07c2
jnt1 X0776
X077a: movx @r0,a
mov r0,#2
X077d: jtf X07c2
X077f: jnt1 X077d
movx @r0,a
djnz r0,X077f
mov a,#0fbh
jt1 X078c
X0788: jtf X07c2
jnt1 X0788
X078c: movx @r0,a
mov r0,#0
mov a,#0ffh
X0791: jtf X07c2
X0793: jnt1 X0791
movx @r0,a
djnz r0,X0793
mov a,#0f7h
X079a: jtf X07c2
jnt1 X079a
movx @r0,a
mov r0,#18h
mov a,#4eh
X07a3: jtf X07c2
X07a5: jnt1 X07a3
movx @r0,a
djnz r0,X07a5
mov a,r1
jb7 X0713
mov r0,#40h
X07af: mov a,#4eh
jnt1 X07b4
movx @r0,a
X07b4: in a,p1
jb2 X07dc
mov a,#4eh
jnt1 X07bc
movx @r0,a
X07bc: jtf X07c0
jmp X07af
;
X07c0: djnz r0,X07af
X07c2: jmp X0557
;
X07c4: jnt1 X07c8
jt1 X0706
X07c8: djnz r4,X0702
in a,p1
cpl a
jb2 X07da
anl p1,#0dch
orl p1,#20h
movx a,@r0
cpl a
jb6 X07da
mov r0,#0fbh
mov @r0,#0ch
X07da: jmp X0557
;
X07dc: anl p1,#0dch
orl p1,#20h
movx a,@r0
anl a,#44h
jnz X07da
jmp X066e
;
org 800h
;
X0800: mov a,r0
mov r0,#0f5h
mov @r0,a
dec r0
mov a,r1
mov @r0,a
dec r0
mov a,r2
mov @r0,a
dec r0
mov a,r3
mov @r0,a
dec r0
mov a,r4
mov @r0,a
dec r0
mov a,r5
mov @r0,a
mov r0,#0f8h
mov a,@r0
dec r0
xrl a,#72h
jnz X0827
mov a,@r0
mov r0,a
add a,#0b0h
jc X0857
anl p1,#0bfh
mov a,#0f7h
jmp X084b
;
X0827: mov a,@r0
add a,#0ffh
mov r2,a
dec r0
mov a,@r0
addc a,#0ffh
mov r3,a
mov r1,#0f0h
mov r4,#0
mov r5,#0fbh
mov a,r2
add a,r4
mov a,r3
addc a,r5
jc X0857
mov r0,#0ffh
mov a,r2
inc r3
X0840: inc r0
add a,r1
jc X0840
djnz r3,X0840
xch a,r1
cpl a
inc a
add a,r1
inc a
X084b: anl p1,#0dch
orl p1,#2
movx @r0,a
anl p1,#0dch
orl p1,#3
mov a,r0
movx @r0,a
clr c
X0857: mov r0,#0f0h
mov a,@r0
mov r5,a
inc r0
mov a,@r0
mov r4,a
inc r0
mov a,@r0
mov r3,a
inc r0
mov a,@r0
mov r2,a
inc r0
mov a,@r0
mov r1,a
inc r0
mov a,@r0
mov r0,a
mov a,psw
jb0 X0875
jb1 X0872
sel mb1
jmp X091d
;
X0872: sel mb1
jmp X0ac8
;
X0875: sel mb1
jmp X091d
;
org 900h
;
X0900: in a,p1
anl a,#10h
jnz X0916
orl p1,#10h
mov r6,#83h
X0909: djnz r6,X0909
anl p1,#0dch
orl p1,#0
mov a,#0d0h
movx @r0,a
mov r6,#33h
X0914: djnz r6,X0914
X0916: mov a,psw
anl a,#0fch
mov psw,a
sel mb1
jmp X0800
;
X091d: anl p1,#0f7h
jnc X0924
sel mb0
jmp X0168
;
X0924: sel mb0
call X0200
sel mb1
in a,p2
anl a,#7
xrl a,#1
jz X0959
clr a
mov r0,#0ffh
X0932: mov @r0,a
djnz r0,X0932
mov r0,#7fh
mov a,psw
orl a,#1
mov psw,a
in a,p2
jb5 X0956
anl p1,#0dch
orl p1,#23h
movx a,@r0
jnz X0954
anl p1,#0dch
orl p1,#22h
movx a,@r0
add a,#0fch
jc X0954
mov a,psw
anl a,#0feh
mov psw,a
jmp X0956
;
X0954: mov r0,#0ffh
X0956: sel mb0
jmp X022b
;
X0959: clr f1
in a,p2
anl a,#8
jz X0961
jmp X0b00
;
X0961: anl p1,#0dch
orl p1,#23h
X0965: movx a,@r0
mov r0,a
mov a,psw
xrl a,r0
anl a,#0f8h
xrl a,r0
mov psw,a
mov a,r0
rl a
rl a
mov r0,a
anl p1,#0dch
orl p1,#22h
movx a,@r0
xrl a,#0f7h
jz X097c
xrl a,#0f7h
X097c: xrl a,r0
anl a,#1fh
xrl a,r0
anl p2,#0f7h
anl p1,#0efh
mov r0,#83h
X0986: djnz r0,X0986
orl p1,#10h
mov r0,#83h
X098c: djnz r0,X098c
mov r0,a
mov a,#0d0h
movx @r0,a
mov a,r0
mov r0,#33h
X0995: djnz r0,X0995
mov r0,a
anl a,#1fh
jnz X099e
mov a,#0f7h
X099e: anl p1,#0dch
orl p1,#2
movx @r0,a
mov a,#0
anl p1,#0dch
orl p1,#0
movx @r0,a
mov a,t
xch a,r0
rr a
rr a
rr a
rr a
rr a
anl a,#7
jmp X0a00
;
org 0a00h
;
X0a00: mov t,a
strt t
X0a02: jtf X0a06
jmp X0a02
;
X0a06: jtf X0a0a
jmp X0a06
;
X0a0a: jtf X0a0e
jmp X0a0a
;
X0a0e: jtf X0a12
jmp X0a0e
;
X0a12: jtf X0a16
jmp X0a12
;
X0a16: jtf X0a1a
jmp X0a16
;
X0a1a: jtf X0a1e
jmp X0a1a
;
X0a1e: stop tcnt
mov t,a
in a,p1
jb2 X0a46
mov a,t
add a,#8
jnc X0a00
rl a
rl a
rl a
anl a,#38h
xch a,r0
mov t,a
mov a,#0d0h
anl p1,#0dch
orl p1,#0
movx @r0,a
mov a,psw
xrl a,r0
anl a,#7
xrl a,r0
mov r0,#33h
X0a3d: djnz r0,X0a3d
anl p1,#0dch
orl p1,#1
movx @r0,a
jmp X0c99
;
X0a46: anl p1,#0dch
orl p1,#20h
movx a,@r0
jmp X0acf
;
anl p1,#0f7h
mov a,r0
mov r0,#83h
X0a52: djnz r0,X0a52
mov r0,a
mov a,#0c4h
anl p1,#0dch
orl p1,#0
movx @r0,a
clr a
mov t,a
mov a,#10h
jtf X0a62
X0a62: strt t
anl p1,#0dch
orl p1,#23h
X0a67: jtf X0a9e
X0a69: jnt1 X0a67
jnt1 X0a67
X0a6d: movx a,@r0
clr a
mov t,a
jtf X0a72
X0a72: jt1 X0a78
X0a74: jtf X0aa9
jnt1 X0a74
X0a78: movx a,@r0
X0a79: jtf X0aa9
jnt1 X0a79
movx a,@r0
X0a7e: jtf X0aa9
jnt1 X0a7e
movx a,@r0
X0a83: jtf X0aa9
jnt1 X0a83
movx a,@r0
X0a88: jtf X0aa9
jnt1 X0a88
movx a,@r0
X0a8d: jtf X0aa9
in a,p1
cpl a
jb2 X0a8d
anl p1,#0dch
orl p1,#20h
movx a,@r0
anl a,#1ch
jnz X0aa9
jmp X0abc
;
X0a9e: jnt1 X0aa2
jt1 X0a6d
X0aa2: dec a
jnt1 X0aa7
jt1 X0a6d
X0aa7: jnz X0a69
X0aa9: mov a,#0d0h
anl p1,#0dch
orl p1,#0
movx @r0,a
mov a,r0
mov r0,#33h
X0ab3: djnz r0,X0ab3
orl p1,#8
mov r0,#83h
X0ab9: djnz r0,X0ab9
mov r0,a
X0abc: stop tcnt
mov a,r0
mov t,a
mov a,psw
anl a,#0fch
orl a,#2
mov psw,a
sel mb1
jmp X0800
;
X0ac8: en i
jnc X0ae1
clr f1
cpl f1
jmp X0c99
;
X0acf: mov a,t
rl a
rl a
rl a
anl a,#38h
xch a,r0
mov t,a
mov a,psw
xrl a,r0
anl a,#7
xrl a,r0
anl p1,#0dch
orl p1,#3
movx @r0,a
X0ae1: clr a
anl p1,#0dch
orl p1,#1
movx @r0,a
jmp X0b00
;
org 0b00h
;
X0b00: anl p1,#0dch
orl p1,#21h
movx a,@r0
mov r0,a
anl p1,#0dch
orl p1,#23h
movx a,@r0
xrl a,r0
jnz X0b12
mov a,t
mov r0,a
jmp X0b77
;
X0b12: anl p2,#0f7h
mov a,#10h
anl p1,#0dch
orl p1,#0
movx @r0,a
mov a,t
mov r0,a
clr a
mov t,a
mov a,psw
anl a,#3fh
orl a,#7
strt t
X0b25: mov psw,a
X0b26: jtf X0b2d
in a,p1
jb2 X0b72
jmp X0b26
;
X0b2d: jtf X0b34
in a,p1
jb2 X0b72
jmp X0b2d
;
X0b34: jtf X0b3b
in a,p1
jb2 X0b72
jmp X0b34
;
X0b3b: jtf X0b42
in a,p1
jb2 X0b72
jmp X0b3b
;
X0b42: jtf X0b49
in a,p1
jb2 X0b72
jmp X0b42
;
X0b49: jtf X0b50
in a,p1
jb2 X0b72
jmp X0b49
;
X0b50: mov a,psw
dec a
jb3 X0b25
add a,#48h
jnc X0b25
stop tcnt
mov a,r0
mov t,a
mov a,#0d0h
anl p1,#0dch
orl p1,#0
movx @r0,a
mov r0,#33h
X0b64: djnz r0,X0b64
anl p1,#0dch
orl p1,#23h
movx a,@r0
anl p1,#0dch
orl p1,#1
movx @r0,a
jmp X0c99
;
X0b72: anl p1,#0dch
orl p1,#20h
movx a,@r0
X0b77: orl p2,#8
mov a,psw
anl a,#0f8h
orl a,#2
jmp X0c00
;
org 0c00h
;
X0c00: mov psw,a
stop tcnt
jtf X0c04
X0c04: clr a
mov t,a
in a,p2
anl a,#7
xrl a,#1
jz X0c0f
jmp X0d00
;
X0c0f: mov r1,#0ffh
mov a,r1
mov r0,a
dec r0
mov r2,#95h
anl p1,#0dch
orl p1,#0
mov a,#80h
movx @r0,a
anl p1,#0dch
orl p1,#23h
X0c21: jtf X0c73
X0c23: jnt1 X0c21
jnt1 X0c21
X0c27: movx a,@r0
cpl a
mov @r1,a
clr a
mov t,a
jtf X0c2e
X0c2e: jt1 X0c34
X0c30: jtf X0c87
X0c32: jnt1 X0c30
X0c34: movx a,@r0
cpl a
mov @r0,a
djnz r0,X0c32
X0c39: jtf X0c87
jnt1 X0c39
movx a,@r0
cpl a
mov r0,a
X0c40: jtf X0c87
in a,p1
anl a,#4
jz X0c40
stop tcnt
mov a,r0
mov t,a
anl p1,#0dch
orl p1,#20h
movx a,@r0
mov r0,a
anl p1,#0dch
orl p1,#21h
movx a,@r0
jnz X0c64
anl p1,#0dch
orl p1,#22h
movx a,@r0
add a,#0fch
jc X0c64
mov a,r0
anl a,#0fbh
mov r0,a
X0c64: in a,p2
rl a
rl a
anl a,#80h
dec a
xch a,r0
anl a,#3ch
jnz X0c93
clr f1
sel mb0
jmp X0300
;
X0c73: jnt1 X0c77
jt1 X0c27
X0c77: djnz r2,X0c23
stop tcnt
anl p1,#0dch
orl p1,#0
mov a,#0d0h
movx @r0,a
mov r0,#33h
X0c83: djnz r0,X0c83
jmp X0c99
;
X0c87: stop tcnt
anl p1,#0dch
orl p1,#0
mov a,#0d0h
movx @r0,a
mov r0,#33h
X0c91: djnz r0,X0c91
X0c93: mov a,t
mov r0,a
mov a,psw
dec a
jb3 X0c00
X0c99: jf1 X0ca2
cpl f1
anl p1,#0dch
orl p1,#21h
jmp X0965
;
X0ca2: mov r0,#0fbh
mov @r0,#4
mov r0,#0
in a,p2
anl a,#7
xrl a,#1
jnz X0cb6
in a,p2
rl a
rl a
anl a,#80h
dec a
mov r0,a
X0cb6: sel mb0
jmp X0300
;
org 0d00h
;
X0d00: clr a
dec a
xch a,r0
xch a,@r0
cpl a
mov r0,a
anl p1,#0dch
orl p1,#0
mov a,#0a2h
movx @r0,a
anl p1,#0dch
orl p1,#3
mov a,r0
mov r0,#95h
strt t
X0d15: jtf X0d54
X0d17: jnt1 X0d15
jnt1 X0d15
X0d1b: movx @r0,a
cpl a
xch a,r0
clr a
mov t,a
jtf X0d22
X0d22: clr a
dec a
xch a,r0
xch a,@r0
dec r0
X0d27: xch a,@r0
cpl a
jt1 X0d2f
X0d2b: jtf X0d7f
jnt1 X0d2b
X0d2f: movx @r0,a
cpl a
xch a,@r0
djnz r0,X0d27
mov r0,a
cpl a
jt1 X0d3c
X0d38: jtf X0d82
jnt1 X0d38
X0d3c: movx @r0,a
X0d3d: jtf X0d82
in a,p1
anl a,#4
jz X0d3d
stop tcnt
mov a,r0
mov t,a
anl p1,#0dch
orl p1,#20h
movx a,@r0
jb6 X0d9e
anl a,#14h
jz X0da9
jmp X0c93
;
X0d54: jnt1 X0d58
jt1 X0d1b
X0d58: djnz r0,X0d17
stop tcnt
cpl a
mov r0,a
in a,p2
rl a
rl a
anl a,#80h
dec a
xch a,r0
xch a,@r0
mov t,a
in a,p1
anl a,#4
jz X0d72
anl p1,#0dch
orl p1,#20h
movx a,@r0
jb6 X0d9e
X0d72: anl p1,#0dch
orl p1,#0
mov a,#0d0h
movx @r0,a
mov r0,#33h
X0d7b: djnz r0,X0d7b
jmp X0c99
;
X0d7f: cpl a
xch a,@r0
mov r0,a
X0d82: stop tcnt
mov a,r0
mov t,a
in a,p1
anl a,#4
jz X0d91
anl p1,#0dch
orl p1,#20h
movx a,@r0
jb6 X0d9e
X0d91: anl p1,#0dch
orl p1,#0
mov a,#0d0h
movx @r0,a
mov r0,#33h
X0d9a: djnz r0,X0d9a
jmp X0c93
;
X0d9e: mov r0,#0fbh
mov @r0,#0ch
mov r0,#0
clr f1
cpl f1
sel mb0
jmp X0300
;
X0da9: jmp X0e00
;
org 0e00h
;
X0e00: in a,p2
anl a,#7
xrl a,#3
jnz X0e6d
clr a
mov r0,a
dec r0
rlc a
mov a,t
cpl a
xch a,@r0
cpl a
dec r0
X0e10: xch a,@r0
cpl a
inc r0
xch a,@r0
dec r0
xch a,@r0
djnz r0,X0e10
mov r0,a
stop tcnt
jtf X0e1c
X0e1c: clr a
mov t,a
anl p1,#0dch
orl p1,#0
mov a,#80h
movx @r0,a
anl p1,#0dch
orl p1,#23h
strt t
mov a,#40h
X0e2c: jtf X0e73
X0e2e: jnt1 X0e2c
jnt1 X0e2c
X0e32: movx a,@r0
xrl a,r0
jnz X0e7e
mov r0,a
jt1 X0e40
X0e39: inc a
jt1 X0e40
jz X0e7e
jnt1 X0e39
X0e40: movx a,@r0
xch a,r0
rrc a
dec a
xch a,r0
xrl a,@r0
jnz X0e7e
dec r0
X0e49: jt1 X0e52
X0e4b: inc a
jt1 X0e52
jz X0e7e
jnt1 X0e4b
X0e52: movx a,@r0
xrl a,@r0
jnz X0e7e
djnz r0,X0e49
clr a
mov t,a
jtf X0e5c
X0e5c: jtf X0e7e
in a,p1
anl a,#4
jz X0e5c
stop tcnt
anl p1,#0dch
orl p1,#20h
movx a,@r0
anl a,#3ch
jnz X0e7e
X0e6d: clr f1
mov r0,#0
sel mb0
jmp X0300
;
X0e73: jnt1 X0e77
jt1 X0e32
X0e77: dec a
jnt1 X0e7c
jt1 X0e32
X0e7c: jnz X0e2e
X0e7e: stop tcnt
mov a,#0d0h
anl p1,#0dch
orl p1,#0
movx @r0,a
mov r0,#33h
X0e88: djnz r0,X0e88
clr f1
cpl f1
jmp X0c99
;
end
;
-
1
-
-
Quick look at the code, it has commands R, r, P, W, S, !, N, O, H, ". There a couple of others but am going to bed as am falling asleep at keyboard. will try and figure out what some do latter.
James
-
My XF351 will format 320K disks if I can get it to enter double density, but I think it only has one head so it will be limited to SD/SS or DD/SS - no DD/DS.
I'll try dumping the ROM. It is an 8040 CPU. Anybody have a disassembler?
Bob
I have a couple. one produces a better output then the other.
James
-
Just a thought, maybe it has a single byte format command for different density's like single or enhanced for the 1050.
Only a dissembley of the rom will show what is going on.
James
-
DOS XE might need to be patched to work with the drive but I dout anyone is going to do that.
Try my dos xe formatter. It is on this forum somewhere. Will need to be run from dos xe as it places parameters into dos xe itself for the drive type which you can name.
James
edit:
is link to the formatter

Atmas disk image
in Atari 8-Bit Computers
Posted · Edited by sup8pdct
From my original disk.
book has many more pages that contain things not at all related to atmas, eg: forth and birth control
:-o
James