home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / GXY-INF.LHA / infos / newrobread1800.s < prev    next >
Encoding:
Text File  |  1996-03-09  |  5.3 KB  |  366 lines

  1.  
  2.  
  3. ***********************************
  4. * BLOCK reader/writer for 
  5. *                  AMIGA DOS
  6. ***********************************
  7. j:    move.l    #0,d0        ;Drive number
  8.     move.l    #0,d1        ;Block number to start from
  9.     move.l    #4,d2        ;Blocks to read/write
  10.     move.l    #$8000,d3    ;$8000 drive on,0 skip turn on,+1 write
  11.     lea    $40000,a0    ;data address
  12.     lea    $75000,a1    ;diskbuffer address
  13.     lea    $c80000,a6
  14.     move.w    #$7fff,$dff09a
  15.     move.w    #$87f0,$dff096
  16.     bsr    LOAD
  17.     move.w    #$83f0,$dff096
  18.     move.w    #$e02c,$dff09a
  19.     rts
  20.  
  21.  
  22. LOAD    MOVEM.L    D1-D7/A0-A5,-(SP)
  23.     LINK    A6,#-$22
  24.     MOVE.W    D0,D5
  25.     AND.W    #3,D5
  26.     MOVE.W    D5,-$22(A6)
  27.     MOVE.W    D1,-$20(A6)
  28.     MOVE.W    D2,-$1E(A6)
  29.     MOVE.W    D3,-$1C(A6)
  30.     MOVE.L    D4,-$12(A6)
  31.     MOVE.L    A0,-$1A(A6)
  32.     MOVE.L    A1,-$16(A6)
  33.     ROR.W    #2,D0
  34.     AND.W    #1,D0
  35.     ADDQ.W    #1,D0
  36.     MOVE.W    D0,-14(A6)
  37.     MOVEQ    #0,D0
  38.     MOVE.W    D2,D3
  39.     BEQ.S    C0A8
  40.     MOVEQ    #$1E,D0
  41.     ADD.W    D1,D3
  42.     CMP.W    #$780,D3
  43.     BGT    C0D2
  44.     EXT.L    D1
  45.     DIVU    #12,D1
  46.     CMP.W    #1,-14(A6)
  47.     BEQ.S    C058
  48.     ADD.W    D1,D1
  49. C058    MOVE.W    D1,-12(A6)
  50.     SWAP    D1
  51.     MOVE.W    D1,-10(A6)
  52.     BSR    C3C8
  53. C066    MOVE.W    -10(A6),D0
  54.     MOVEQ    #12,D1
  55.     SUB.W    D0,D1
  56.     CMP.W    -$1E(A6),D1
  57.     BLE.S    C078
  58.     MOVE.W    -$1E(A6),D1
  59. C078    MOVE.W    D1,-8(A6)
  60.     BSR.S    C0DC
  61.     BNE.S    C0A8
  62.     MOVE.W    -$1E(A6),D0
  63.     SUB.W    -8(A6),D0
  64.     BEQ.S    C0A8
  65.     MOVE.W    D0,-$1E(A6)
  66.     MOVE.W    -8(A6),D0
  67.     LSL.L    #8,D0
  68.     ADD.L    D0,D0
  69.     ADD.L    D0,-$1A(A6)
  70.     CLR.W    -10(A6)
  71.     MOVE.W    -14(A6),D0
  72.     ADD.W    D0,-12(A6)
  73.     BRA.S    C066
  74.  
  75. C0A8    MOVE.L    D0,-(SP)
  76.     BSR    C39A
  77.     MOVE.L    (SP)+,D0
  78.     BEQ.S    C0D2
  79.     MOVEQ    #0,D1
  80.     MOVE.W    -12(A6),D1
  81.     CMP.W    #1,-14(A6)
  82.     BEQ.S    C0C2
  83.     LSR.W    #1,D1
  84. C0C2    MULU    #12,D1
  85.     ADD.W    -10(A6),D1
  86.     ADD.W    -4(A6),D1
  87.     MOVE.L    D1,$26(SP)
  88. C0D2    UNLK    A6
  89.     TST.L    D0
  90.     MOVEM.L    (SP)+,D1-D7/A0-A5
  91.     RTS
  92.  
  93. C0DC    MOVEQ    #2,D5
  94. C0DE    MOVE.W    -12(A6),D0
  95.     BSR    C2DC
  96.     MOVEQ    #$1D,D0
  97.     BTST    #2,$BFE001
  98.     BEQ.S    C11A
  99.     MOVE.L    -$16(A6),A5
  100.     MOVE.L    A5,A0
  101.     MOVE.L    A5,A1
  102.     MOVEQ    #11,D0
  103. C0FC    ADD.W    #$40A,A0
  104.     CLR.W    (A0)+
  105.     ADD.W    #$40A,A1
  106.     CLR.W    (A1)+
  107.     ADD.W    #$38,A1
  108.     DBRA    D0,C0FC
  109.     MOVE.L    A5,A0
  110.     BSR.S    C12E
  111.     BSR    C1A6
  112.     BEQ.S    C12C
  113. C11A    MOVE.L    D0,-(SP)
  114.     MOVEQ    #2,D0
  115.     BSR    C2DC
  116.     BSR    C304
  117.     MOVE.L    (SP)+,D0
  118.     DBRA    D5,C0DE
  119. C12C    BRA.S    C192
  120.  
  121. C12E    LEA    $DFF000,A1
  122.     MOVE.W    #$4000,$24(A1)
  123.     MOVE.W    #$8010,$96(A1)
  124.     MOVE.W    #$6600,$9E(A1)
  125.     MOVE.W    #$9500,$9E(A1)
  126.     MOVE.L    A0,$20(A1)
  127.     MOVE.W    #2,$9C(A1)
  128.     MOVE.W    #$1448,$7E(A1)
  129.     MOVE.W    #$998B,$DFF024
  130.     MOVE.W    #$998B,$DFF024
  131.     RTS
  132.  
  133.     LEA    $DFF000,A1
  134.     MOVE.L    #$9C4,D0
  135.     BSR    C3FA
  136. C17E    BTST    #1,$1F(A1)
  137.     BNE.S    C190
  138.     BSR    C3EC
  139.     BNE.S    C17E
  140.     MOVEQ    #-1,D0
  141.     BRA.S    C192
  142.  
  143. C190    MOVEQ    #0,D0
  144. C192    MOVE.W    #2,$DFF09C
  145.     MOVE.W    #$4000,$DFF024
  146.     TST.L    D0
  147.     RTS
  148.  
  149. C1A6    CLR.W    -6(A6)
  150.     CLR.W    -4(A6)
  151.     MOVE.L    -$1A(A6),A2
  152.     MOVE.L    -$16(A6),A5
  153.     BSR    C26E
  154.     BEQ    C262
  155.     MOVE.W    #$600,$DFF09E
  156.     MOVE.W    #0,$DFF07E
  157. C1CE    BSR    C26E
  158.     BEQ    C262
  159.     CMP.W    #$4891,(A5)
  160.     BNE    C266
  161.     LEA    2(A5),A0
  162.     MOVE.L    (A0)+,D0
  163.     MOVE.L    (A0)+,D1
  164.     AND.L    #$55555555,D0
  165.     AND.L    #$55555555,D1
  166.     ADD.L    D0,D0
  167.     OR.L    D1,D0
  168.     MOVE.L    -$12(A6),D1
  169.     BSET    #$1F,D1
  170.     EOR.L    D1,D0
  171.     MOVE.L    D0,D3
  172.     SWAP    D0
  173.     CMP.B    -11(A6),D0
  174.     BNE.S    C266
  175.     LSR.W    #8,D0
  176.     CMP.B    -5(A6),D0
  177.     BNE.S    C266
  178.     CMP.B    -9(A6),D0
  179.     BLT.S    C23A
  180.     MOVE.B    -7(A6),D1
  181.     ADD.B    -9(A6),D1
  182.     CMP.B    D1,D0
  183.     BGE.S    C23A
  184.     LEA    10(A5),A0
  185.     BSR.S    C286
  186.     CMP.W    D0,D3
  187.     BNE.S    C26A
  188.     MOVE.L    A2,A1
  189.     BSR.S    C2AC
  190.     LEA    $200(A2),A2
  191.     ADDQ.W    #1,-4(A6)
  192. C23A    ADD.W    #$40A,A5
  193.     MOVE.W    (A5)+,D0
  194.     MOVEQ    #0,D1
  195.     MOVEQ    #7,D2
  196. C244    ROXL.W    #2,D0
  197.     ROXL.B    #1,D1
  198.     DBRA    D2,C244
  199.     ADD.W    D1,D1
  200.     ADD.L    D1,A5
  201.     ADDQ.W    #1,-6(A6)
  202.     CMP.W    #12,-6(A6)
  203.     BNE    C1CE
  204.     MOVEQ    #0,D0
  205.     RTS
  206.  
  207. C262    MOVEQ    #-1,D0
  208.     RTS
  209.  
  210. C266    MOVEQ    #$1B,D0
  211.     RTS
  212.  
  213. C26A    MOVEQ    #$19,D0
  214.     RTS
  215.  
  216. C26E    MOVE.L    #$BB8,D0
  217.     BSR    C3FA
  218. C278    BSR    C3EC
  219.     BEQ.S    C284
  220.     TST.W    $40A(A5)
  221.     BEQ.S    C278
  222. C284    RTS
  223.  
  224. C286    MOVEM.L    D1/D2/A0,-(SP)
  225.     MOVEQ    #0,D0
  226.     MOVE.W    #$FF,D1
  227. C290    MOVE.L    (A0)+,D2
  228.     EOR.L    D2,D0
  229.     DBRA    D1,C290
  230.     AND.L    #$55555555,D0
  231.     MOVE.L    D0,D1
  232.     SWAP    D1
  233.     ADD.W    D1,D1
  234.     OR.W    D1,D0
  235.     MOVEM.L    (SP)+,D1/D2/A0
  236.     RTS
  237.  
  238. C2AC    MOVEM.L    D0-D4/A0-A2,-(SP)
  239.     MOVEQ    #$7F,D0
  240.     LEA    $200(A0),A2
  241.     MOVE.L    #$55555555,D3
  242.     MOVE.L    -$12(A6),D4
  243. C2C0    MOVE.L    (A0)+,D1
  244.     MOVE.L    (A2)+,D2
  245.     AND.L    D3,D1
  246.     AND.L    D3,D2
  247.     ADD.L    D1,D1
  248.     OR.L    D2,D1
  249.     EOR.L    D1,D4
  250.     MOVE.L    D4,(A1)+
  251.     MOVE.L    D1,D4
  252.     DBRA    D0,C2C0
  253.     MOVEM.L    (SP)+,D0-D4/A0-A2
  254.     RTS
  255.  
  256. C2DC    MOVE.W    D0,-(SP)
  257.     MOVE.W    -$22(A6),D0
  258.     ADD.W    D0,D0
  259.     LEA    L336(PC,D0.W),A0
  260.     TST.W    (A0)
  261.     BPL.S    C2EE
  262.     BSR.S    C304
  263. C2EE    MOVE.W    (SP),D0
  264.     LSR.W    #1,D0
  265.     LSR.W    (A0)
  266.     MOVEQ    #0,D1
  267.     SUB.W    (A0),D0
  268.     BPL.S    C2FE
  269.     MOVEQ    #-1,D1
  270.     NEG.W    D0
  271. C2FE    BSR.S    C36A
  272.     MOVE.W    (SP)+,(A0)
  273.     BRA.S    C32C
  274.  
  275. C304    MOVEQ    #$55,D1
  276. C306    BTST    #4,$BFE001
  277.     BEQ.S    C320
  278.     MOVE.L    D1,-(SP)
  279.     MOVEQ    #1,D0
  280.     MOVEQ    #-1,D1
  281.     BSR.S    C36A
  282.     MOVE.L    (SP)+,D1
  283.     DBRA    D1,C306
  284.     RTS
  285.  
  286. C320    MOVE.W    -$22(A6),D0
  287.     ADD.W    D0,D0
  288.     LEA    L336(PC,D0.W),A0
  289.     CLR.W    (A0)
  290. C32C    BSR.S    C33E
  291.     MOVE.B    D0,$BFD100
  292.     RTS
  293.  
  294. L336    dc.l    $FFFFFFFF
  295.     dc.l    $FFFFFFFF
  296.  
  297. C33E    MOVE.W    D1,-(SP)
  298.     MOVE.B    $BFD100,D0
  299.     OR.B    #$7F,D0
  300.     MOVE.W    -$22(A6),D1
  301.     ADDQ.B    #3,D1
  302.     BCLR    D1,D0
  303.     SUBQ.B    #3,D1
  304.     ADD.W    D1,D1
  305.     LEA    L336(PC,D1.W),A0
  306.     BTST    #0,1(A0)
  307.     BEQ.S    C366
  308.     BCLR    #2,D0
  309. C366    MOVE.W    (SP)+,D1
  310.     RTS
  311.  
  312. C36A    TST.B    D0
  313.     BEQ.S    C398
  314.     MOVE.W    D0,-(SP)
  315.     BSR.S    C33E
  316.     TST.B    D1
  317.     BMI.S    C37A
  318.     BCLR    #1,D0
  319. C37A    BCLR    #0,D0
  320.     MOVE.B    D0,$BFD100
  321.     BSET    #0,D0
  322.     MOVE.B    D0,$BFD100
  323.     MOVEQ    #3,D0
  324.     BSR.S    C3DA
  325.     MOVE.W    (SP)+,D0
  326.     SUBQ.B    #1,D0
  327.     BNE.S    C36A
  328. C398    RTS
  329.  
  330. C39A    MOVE.W    #$400,$DFF09E
  331.     TST.W    -$1C(A6)
  332.     BPL.S    C3C6
  333.     MOVEQ    #-1,D1
  334. C3AA    MOVE.B    D1,$BFD100
  335.     MOVE.W    -$22(A6),D0
  336.     ADDQ.L    #3,D0
  337.     BCLR    D0,D1
  338.     MOVE.B    D1,$BFD100
  339.     BSET    D0,D1
  340.     MOVE.B    D1,$BFD100
  341. C3C6    RTS
  342.  
  343. C3C8    MOVEQ    #-1,D1
  344.     MOVE.B    D1,$BFD100
  345.     BCLR    #7,D1
  346.     BSR.S    C3AA
  347.     MOVEQ    #$64,D0
  348.     ADD.L    D0,D0
  349. C3DA    BSR.S    C3FA
  350. C3DC    BTST    #0,$BFDE00
  351.     BNE.S    C3DC
  352.     SUBQ.L    #1,D0
  353.     BNE.S    C3DA
  354.     RTS
  355.  
  356. C3EC    BTST    #0,$BFDE00
  357.     BNE.S    C412
  358.     SUBQ.L    #1,D0
  359.     BEQ.S    C412
  360. C3FA    MOVE.B    #8,$BFDE00
  361.     MOVE.B    #$CC,$BFD400
  362.     MOVE.B    #2,$BFD500
  363. C412    RTS
  364.     end
  365.  
  366.