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

  1. floppy = 0
  2.  
  3. s:    move.l    $4.w,a6
  4.     jsr    -132(a6)
  5.  
  6.     move.l    #$200,d0
  7.     moveq    #2,d1
  8.     jsr    -198(a6)
  9.     move.l    d0,a4
  10.     beq    fini
  11.  
  12.     suba.l    a1,a1
  13.     jsr    -294(a6)
  14.     lea    portadr(pc),a1
  15.     move.l    d0,16(a1)
  16.     jsr    -354(a6)
  17.     lea    iorequest(pc),a1
  18.     lea    portname(pc),a0
  19.     moveq    #floppy,d0
  20.     moveq    #0,d1
  21.     jsr    -444(a6)
  22.     tst.l    d0
  23.     bne    error
  24.  
  25.     move.w    #2,$1c(a1)
  26.     moveq    #0,d0
  27.     bsr    get_sector
  28.  
  29.     move.l    8(a4),d0
  30.     bsr    get_sector
  31.  
  32.     moveq    #-1,d0
  33.     cmp.l    78*4(a4),d0
  34.     bne.s    ende
  35.     move.l    79*4(a4),d0
  36.     lea    map_sector(pc),a0
  37.     move.l    d0,(a0)
  38.     bsr    get_sector
  39.  
  40.     lea    tracklist(pc),a5
  41. diskloop2:
  42.     move.w    (a5)+,d6
  43.     beq.s    diskout
  44.     mulu    #11,d6
  45.     moveq    #10,d7
  46. diskloop1:
  47.     move.w    d6,d1
  48.     subi.w    #1759,d1
  49.     neg.w    d1
  50.     lsr.w    #5,d1
  51.     lsl.w    #2,d1
  52.     move.w    d6,d0
  53.     andi.w    #$001f,d0
  54.     addq.w    #1,d0
  55.     moveq    #1,d2
  56.     ror.l    d0,d2
  57.     not.l    d2
  58.     and.l    d2,4(a4,d1.w)
  59.     addq.w    #1,d6
  60.     dbf    d7,diskloop1
  61.     bra.s    diskloop2
  62.  
  63. diskout:
  64.     lea    4(a4),a0
  65.     moveq    #0,d1
  66.     moveq    #$7f-1,d0
  67. checkloop1:
  68.     add.l    (a0)+,d1
  69.     dbf    d0,checkloop1
  70.     neg.l    d1
  71.     move.l    d1,(a4)
  72.  
  73.     move.w    #3,$1c(a1)
  74.     move.l    map_sector(pc),d0
  75.     bsr.s    get_sector
  76.  
  77. ende:    move.w    #9,$1c(a1)
  78.     clr.l    $24(a1)
  79.     jsr    -456(a6)
  80.  
  81.     lea    iorequest(pc),a1
  82.     jsr    -450(a6)
  83. error:    lea    portadr(pc),a1
  84.     jsr    -360(a6)
  85.     move.l    #$200,d0
  86.     move.l    a4,a1
  87.     jsr    -210(a6)
  88. fini:    jmp    -138(a6)
  89.  
  90. get_sector:    ;d0.l=sector (e.g. 880)
  91.     lea    iorequest(pc),a1
  92.     move.l    #$200,$24(a1)
  93.     move.l    a4,$28(a1)
  94.     moveq    #9,d1
  95.     lsl.l    d1,d0
  96.     move.l    d0,$2c(a1)
  97.     jsr    -456(a6)
  98.     cmpi.l    #$200,$20(a1)
  99.     bne.s    get1
  100.     rts
  101. get1:    addq.l    #4,a7
  102.     bra.s    ende
  103.  
  104. map_sector:
  105.     dc.l    0
  106. portadr:dc.l    0,0
  107.     dc.b    4,0
  108.     dc.l    portname
  109.     dc.b    0,31
  110.     dc.l    0
  111.     dc.l    0,0,0,0
  112.     dc.b    0,0
  113. portname:
  114.     dc.b    'trackdisk.device',0
  115.     even
  116. iorequest:
  117.     dc.l    0,0
  118.     dc.b    5,0
  119.     dc.l    0
  120.     dc.l    portadr
  121.     dc.w    48
  122.     dc.l    0,0
  123.  
  124.     dc.w    0,0
  125.     dc.l    0,0,0,0
  126.  
  127. tracklist:
  128.     dc.w    32,33,39,40,43,48,54,55,59,64,0
  129.