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

  1. ****************************************
  2. *special reader    (midwinter,time warrior) (10 sectors, $1400)
  3. ****************************************
  4. *A0    LOAD addr
  5. *d0    start trk
  6. *d1    nrs to read
  7. **********************
  8.  
  9.     ;first 3,7 $60000
  10.     ;next  10,$2c $800
  11.  
  12.  
  13. Fileno:    equ    66
  14.  
  15.  
  16.  
  17. ;sttrk:    equ    5
  18. ;Flen:    equ    $14a90
  19.  
  20. org    $c70000
  21. load    $c70000
  22. j:    move.w    #$7fff,$dff09a
  23.     MOVE.W    #$7fff,$dff096
  24.     lea    $c80000,a0
  25.     moveq    #0,d0
  26.     move.l    #Fileno,d7
  27.     subq.l    #1,d7
  28.     mulu    #$20,d7
  29.     lea    (a0,d7.l),a0
  30.     move.w    (a0),d0
  31.     move.l    4(a0),d7
  32.     add.l    #10,d7
  33.     divu    #$17c0,d7
  34.     and.l    #$ffff,d7
  35.     addq.w    #1,d7
  36.  
  37.     move.l    d0,d2
  38.     and.l    #1,d2
  39.     lsr.l    #1,d0
  40.  
  41.     lea    $25000,a0
  42. dt:    movem.l    d0/d2/d7,-(a7)
  43.     bsr    load
  44.     movem.l    (A7)+,d0/d2/d7
  45.     clr.l    driveside
  46.     clr.l    track
  47.     eor.w    #1,d2
  48.     bne.s    notrk
  49.     addq.l    #1,d0
  50. notrk:    subq.l    #1,d7
  51.     bne.s    Dt
  52. UDr:    move.w    #$83f0,$dff096
  53.     move.w    #$e02c,$dff09a
  54.     lea    $c80000,a0
  55.     move.l    #Fileno,d7
  56.     subq.l    #1,d7
  57.     mulu    #$20,d7
  58.     lea    (a0,d7.l),a2
  59.     move.l    4(a2),d7
  60.     add.l    #10,d7
  61.     lea    $25000,a0
  62.     move.l    a0,a1
  63.     add.l    d7,a1
  64.     lea    AA(pc),a3
  65.     lea    8(a2),a2
  66. rt:    move.b    (a2)+,(a3)+
  67.     tst.b    (a2)
  68.     bne.s    rt
  69.     rts
  70.  
  71. aa:    blk.b    50,0
  72.  
  73.  
  74. driveside:    dc.w    0
  75. drive:        dc.w    0
  76. track:        dc.w    0
  77. side:        dc.w    0
  78.  
  79. LOAD:    move.w    #$8210,$dff096
  80. ;    move.l    #2,d0
  81.     move.l    #1,d1
  82.     lea    $dff000,a6
  83. ;    lea    $c90000,a0
  84.     CLR.W    drive
  85.     ST    track
  86.     move.W    d2,side
  87.     bsr    C148
  88.     tst.w    d4
  89.     bmi.s    notok
  90.     bra.s    ok
  91. notok:    ;move.w    #$f,$dff180
  92.     ;btst    #6,$bfe001
  93.     ;bne.s    notok
  94. ok:    rts
  95.  
  96. C05C:    LEA    $0BFD000,A4
  97.     MOVE.L    #$55555555,D5
  98.     MOVE.W    drive,D2
  99.     MOVEQ    #0,D3
  100.     ADD.W    #3,D2
  101.     BSET    D2,D3
  102.     MOVE.W    side,D2
  103.     BEQ.S    C07E
  104.     BSET    #2,D3
  105. C07E:    MOVE.B    D3,driveside
  106.     MOVE.B    #$FF,$100(A4)
  107.     MOVE.B    #$7F,$100(A4)
  108.     OR.B    #$80,D3
  109.     NOT.B    D3
  110.     MOVE.B    D3,$100(A4)
  111.     MOVE.W    #$C000,D2
  112. C09C:    MOVE.W    D2,D4
  113.     MULU    D4,D4
  114.     MULU    D4,D4
  115.     BTST    #5,$1001(A4)
  116.     DBEQ    D2,C09C
  117.     BNE    C1EE
  118.     MOVEQ    #0,D4
  119.     RTS
  120. C0B4:    MOVE.B    #$FF,$100(A4)
  121.     MOVE.B    #$BF,$100(A4)
  122.     MOVE.B    #$DF,$100(A4)
  123.     MOVE.B    #$EF,$100(A4)
  124.     MOVE.B    #$F7,$100(A4)
  125.     MOVE.B    #$FF,$100(A4)
  126.     RTS
  127. C0DA:    BTST    #4,$1001(A4)
  128.     BEQ.S    C0EA
  129.     MOVEQ    #1,D0
  130.     BSR    C10A
  131.     BRA.S    C0DA
  132. C0EA:    CLR.W    track
  133.     RTS
  134. C0F0:    MOVE.W    D0,D6
  135.     TST.W    track
  136.     BPL.S    C0FA
  137.     BSR.S    C0DA
  138. C0FA:    SUB.W    track,D6
  139.     BEQ.S    C146
  140.     ADD.W    d6,track
  141.     MOVE.W    D6,D0
  142.     BPL.S    C114
  143.     NEG.W    D0
  144. C10A:    MOVE.B    driveside,D1
  145.     OR.B    #$80,D1
  146.     BRA.S    C11C
  147. C114:    MOVE.B    driveside,D1
  148.     OR.B    #$82,D1
  149. C11C:    MOVE.B    D1,D2
  150.     OR.B    #1,D2
  151.     NOT.B    D1
  152.     NOT.B    D2
  153.     SUBQ.W    #1,D0
  154. C128:    MOVE.B    D2,$100(A4)
  155.     BRA    C130
  156.  
  157. C130:    BRA    C134
  158.  
  159. C134:    MOVE.B    D1,$100(A4)
  160.     MOVE.W    #$208,D3
  161. C13C:    MULU    D4,D4
  162.     DBRA    D3,C13C
  163.     DBRA    D0,C128
  164. C146:    RTS
  165. C148:    SUBQ.W    #1,D1
  166.     BMI.S    C17C
  167.     BSR    C05C
  168.     BMI.S    C17E
  169. C152:    MOVE.W    #4,$1F4
  170. C158:    MOVEM.W    D0/D1,-(SP)
  171.     MOVE.L    A0,-(SP)
  172.     BSR.L    C0F0
  173.     BSR    C19A
  174.     BMI.S    C186
  175.     MOVE.L    A0,A5
  176.     BSR    C1F2
  177.     BMI.S    C186
  178.     MOVE.L    A5,A0
  179.     ADDQ.W    #4,SP
  180.     MOVEM.W    (SP)+,D0/D1
  181.     addq.w    #1,D0
  182. onu:    DBRA    D1,C152
  183. C17C:    MOVEQ    #0,D4
  184. C17E:    BSR    C0B4
  185.     TST.W    D4
  186.     RTS
  187. C186:    MOVE.L    (SP)+,A0
  188.     MOVEM.W    (SP)+,D0/D1
  189.     SUBQ.W    #1,$1F4
  190.     BMI.S    C17E
  191.     BNE.S    C158
  192.     ST     track
  193.     BRA.S    C158
  194.  
  195. C19A:    MOVE.W    #$4000,$024(A6)
  196.     MOVE.W    #2,$09C(A6)
  197.     MOVE.L    #$70000,$020(A6)
  198.     MOVE.W    #$7f00,$09E(A6)
  199.     MOVE.W    #$8500,$09E(A6)
  200.     MOVE.W    #$4489,$07E(A6)
  201.     MOVE.W    #$9b00,$024(A6)
  202.     MOVE.W    #$9b00,$024(A6)
  203.     MOVE.l    #$1a00000,D0
  204. C1CE:    btst    #1,$dff01f
  205.     bne.s    tu
  206.     subq.l    #1,d0
  207.     bne.s    c1ce
  208. tu:    MOVE.W    #$4000,$024(A6)
  209.     MOVEQ    #0,D4
  210.     RTS
  211. C1E8:    MOVE.W    #$4000,$024(A6)
  212. C1EE:    MOVEQ    #-1,D4
  213.     RTS
  214. C1F2:    move.w    #$4489,d4
  215.     LEA    $70000,A2
  216.     CMP.W    (A2)+,d4
  217.     BEQ.S    C200
  218.     SUBQ.W    #2,A2
  219. C200:    CMP.W    (A2)+,d4
  220.     BEQ.S    C202
  221.     SUBQ.W    #2,A2
  222. C202:    MOVE.L    A2,A0
  223.     BSR    C254
  224.     MOVE.W    track,D1
  225.     ADD.W    D1,D1
  226.     ADD.W    side,D1
  227.     CMP.B    D0,D1
  228.     BNE.S    C1EE
  229.     LEA    8(A2),A0
  230.     BSR    C254
  231.     MOVE.L    D0,D7
  232.     LEA    $a0(A2),A0
  233.     BSR    C242
  234.     and.l    #$55555555,d0
  235.     CMP.L    D0,D7
  236. ;    BNE.S    C1EE
  237.     move.l    TRkok2(pc),a0
  238.     move.w    track(pc),(a0)+
  239.     move.w    side(pc),(a0)+
  240.     move.w    $dff006,$dff180
  241.     move.l    a0,trkok2
  242.     LEA    $a0(A2),A0
  243.     MOVE.l    #$17c0,D0
  244.     BSR    C262
  245.     MOVEQ    #0,D4
  246.     RTS
  247.     MOVEQ    #-1,D4
  248.     RTS
  249. trkok2:    dc.l    trkok
  250.  
  251.  
  252.  
  253. C242:    move.l    #$bdf,d1
  254.     moveq    #0,d0
  255. C248:    move.l    (a0)+,d2
  256.     EOR.L    d2,D0
  257.     DBf    D1,C248
  258.     RTS
  259. C254:    MOVE.L    (A0)+,D0
  260.     MOVE.L    (A0)+,D1
  261.     AND.L    D5,D0
  262.     AND.L    D5,D1
  263.     ADD.L    D0,D0
  264.     OR.L    D1,D0
  265.     RTS
  266. C262:    lea    $17c0(a0),a1
  267.     LSR.W    #2,D0
  268.     SUBQ.W    #1,D0
  269. C26A:    MOVE.L    (A0)+,D1
  270.     MOVE.L    (A1)+,D2
  271.     AND.L    D5,D1
  272.     AND.L    D5,D2
  273.     ADD.L    D1,D1
  274.     OR.L    D2,D1
  275.     MOVE.L    D1,(A5)+
  276.     DBf    D0,C26A
  277.     RTS
  278. trkok:    blk.w    200,-1
  279.