Jump to content

sup8pdct

Members
  • Content Count

    935
  • Joined

  • Last visited

Posts posted by sup8pdct


  1. 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


  2. 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


  3. 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


  4. 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


  5. 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


  6. 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


  7. 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


  8. 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


  9. 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


  10. 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


  11. 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.


  12. 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
    ;

    • Like 1

  13. 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


  14. 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:

     

    http://atariage.com/forums/topic/154173-bored-so-i-did-this-part-2/?hl=%2Bdosxe&do=findComment&comment=1894629

     

    is link to the formatter

×
×
  • Create New...