home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Archives / MoreHardware / DriveTest.lha / drivetest.asm next >
Encoding:
Assembly Source File  |  1994-03-15  |  4.0 KB  |  308 lines

  1.     include    ssmac.h
  2.     include    values/intuition.gs
  3.     include    resources/disk.i
  4.  
  5.     opt    o+,w+,nochkimm
  6.  
  7.     dv.l    diskres
  8.     dbuf.l    pointers,13
  9.     dv.l    window_hd
  10.     dv.l    rastport
  11.     dv.w    out
  12.     dv.w    in
  13.  
  14.     tbase    a4
  15.  
  16.     start
  17.     dtl    <disk.resource>,a1
  18.     moveq    #0,d0
  19.     call    exec,OpenResource
  20.     put.l    d0,diskres
  21.     errc.ne    <Cannot open disk.resource>
  22.  
  23.     lea    my_window(pc),a0
  24.     lea    gadgets(pc),a2
  25.     geta    pointers,a3
  26.     call    igs,igsOpenWindow
  27.     put.l    d0,window_hd
  28.     put.l    a0,rastport
  29.  
  30.     geta    pointers,a1
  31.     moveq    #7,d0
  32. 1$    move.l    (a1)+,a0
  33.     bset    #0,gg_Activation(a0)
  34.     bset    #7,gg_Flags+1(a0)
  35.     dbf    d0,1$
  36.  
  37.     get.l    pointers,a0
  38.     get.l    window_hd,a1
  39.     sub.l    a2,a2
  40.     moveq    #-1,d0
  41.     call    intuition,RefreshGList
  42.  
  43.     geta    pointers+8*4,a1
  44.     moveq    #3,d0
  45. 2$    move.l    (a1)+,a0
  46.     bset    #0,gg_Flags(a0)
  47.     dbf    d0,2$
  48.  
  49.     sub.l    a0,a0
  50.     moveq    #DRU_SIZE,d0
  51.     call    ss,TrackIoRq
  52.     move.l    d0,a1
  53.     get.l    diskres,a6
  54.     jsr    DR_GETUNIT(a6)
  55.     errc.ne    <Cannot get unit>
  56.  
  57.     writeln    <Waiting...>
  58.  
  59.     put.w    #-1,out
  60.  
  61.     get.l    rastport,a1
  62.     moveq    #3,d0
  63.     call    gfx,SetAPen
  64.  
  65.     get.l    rastport,a1
  66.     moveq    #3,d0
  67.     call    SetDrMd
  68.  
  69. loop    moveq    #5,d1
  70.     call    dos,Delay
  71.  
  72.     move.w    $bfe000,d0
  73.     get.w    in,d1
  74.     put.w    d0,in
  75.     eor.w    d0,d1
  76.     beq.s    1$
  77.     geta    pointers+8*4,a1
  78.     moveq    #3,d0
  79. 2$    move.l    (a1)+,a0
  80.     move.w    d1,d2
  81.     and.w    gg_GadgetID(a0),d2
  82.     beq.s    3$
  83.     mpush    a1/d0-1
  84.     move.w    gg_LeftEdge(a0),d0
  85.     move.w    gg_TopEdge(a0),d1
  86.     move.w    d0,d2
  87.     move.w    d1,d3
  88.     add.w    gg_Width(a0),d2
  89.     subq.w    #1,d2
  90.     add.w    gg_Height(a0),d3
  91.     subq.w    #1,d3
  92.     get.l    rastport,a1
  93.     call    gfx,RectFill
  94.     mpop    a1/d0-1
  95.  
  96. 3$    dbf    d0,2$
  97.  
  98. 1$    get.l    window_hd,a0
  99.     call    igs,igsGetIDCMP
  100.     moveq    #-1,d0
  101.     cmp.l    d0,d2
  102.     beq.s    loop
  103.     move.w    gg_GadgetID(a0),d1
  104.     bne.s    chng
  105.  
  106.     get.l    diskres,a6
  107.     jsr    DR_GIVEUNIT(a6)
  108.  
  109.     rts
  110.  
  111. chng    get.w    out,d0
  112.     eor.w    d1,d0
  113.     put.w    d0,out
  114.     rol.w    #8,d0
  115.     move.w    d0,$bfd100
  116.     bra    loop
  117.  
  118.     include    source:ism/drivetest.ib
  119.  
  120. gadgets    dc.l    g_2
  121.     dc.b    1,$FF
  122.     dc.l    0
  123.     ds.l    7
  124.     dc.w    20,20
  125.     dc.w    100,15
  126.     dc.l    t_1,0
  127.     dc.w    $80
  128.     dc.l    $10
  129.     ds.l    2
  130.  
  131. g_2    dc.l    g_3
  132.     dc.b    1,$FF
  133.     dc.l    0
  134.     ds.l    7
  135.     dc.w    130,20
  136.     dc.w    100,15
  137.     dc.l    t_2,0
  138.     dc.w    $4
  139.     dc.l    $10
  140.     ds.l    2
  141.  
  142. g_3    dc.l    g_4
  143.     dc.b    1,$FF
  144.     dc.l    0
  145.     ds.l    7
  146.     dc.w    240,20
  147.     dc.w    100,15
  148.     dc.l    t_3,0
  149.     dc.w    $2
  150.     dc.l    $10
  151.     ds.l    2
  152.  
  153. g_4    dc.l    g_5
  154.     dc.b    1,$FF
  155.     dc.l    0
  156.     ds.l    7
  157.     dc.w    350,20
  158.     dc.w    100,15
  159.     dc.l    t_4,0
  160.     dc.w    $1
  161.     dc.l    $10
  162.     ds.l    2
  163.  
  164. g_5    dc.l    g_6
  165.     dc.b    1,$FF
  166.     dc.l    0
  167.     ds.l    7
  168.     dc.w    20,40
  169.     dc.w    100,15
  170.     dc.l    t_5,0
  171.     dc.w    $40
  172.     dc.l    $10
  173.     ds.l    2
  174.  
  175. g_6    dc.l    g_7
  176.     dc.b    1,$FF
  177.     dc.l    0
  178.     ds.l    7
  179.     dc.w    130,40
  180.     dc.w    100,15
  181.     dc.l    t_6,0
  182.     dc.w    $20
  183.     dc.l    $10
  184.     ds.l    2
  185.  
  186. g_7    dc.l    g_8
  187.     dc.b    1,$FF
  188.     dc.l    0
  189.     ds.l    7
  190.     dc.w    240,40
  191.     dc.w    100,15
  192.     dc.l    t_7,0
  193.     dc.w    $10
  194.     dc.l    $10
  195.     ds.l    2
  196.  
  197. g_8    dc.l    g_9
  198.     dc.b    1,$FF
  199.     dc.l    0
  200.     ds.l    7
  201.     dc.w    350,40
  202.     dc.w    100,15
  203.     dc.l    t_8,0
  204.     dc.w    $8
  205.     dc.l    $10
  206.     ds.l    2
  207.  
  208. g_9    dc.l    g_10
  209.     dc.b    1,$FF
  210.     dc.l    0
  211.     ds.l    7
  212.     dc.w    20,65
  213.     dc.w    100,15
  214.     dc.l    t_9,0
  215.     dc.w    $20
  216.     dc.l    $10
  217.     ds.l    2
  218.  
  219. g_10    dc.l    g_11
  220.     dc.b    1,$FF
  221.     dc.l    0
  222.     ds.l    7
  223.     dc.w    130,65
  224.     dc.w    100,15
  225.     dc.l    t_10,0
  226.     dc.w    $10
  227.     dc.l    $10
  228.     ds.l    2
  229.  
  230. g_11    dc.l    g_12
  231.     dc.b    1,$FF
  232.     dc.l    0
  233.     ds.l    7
  234.     dc.w    240,65
  235.     dc.w    100,15
  236.     dc.l    t_11,0
  237.     dc.w    $8
  238.     dc.l    $10
  239.     ds.l    2
  240.  
  241. g_12    dc.l    g_13
  242.     dc.b    1,$FF
  243.     dc.l    0
  244.     ds.l    7
  245.     dc.w    350,65
  246.     dc.w    100,15
  247.     dc.l    t_12,0
  248.     dc.w    $4
  249.     dc.l    $10
  250.     ds.l    2
  251.  
  252. g_13    dc.l    0
  253.     dc.b    1,$FF
  254.     dc.l    0
  255.     ds.l    7
  256.     dc.w    20,90
  257.     dc.w    430,15
  258.     dc.l    t_13,0
  259.     dc.w    $0
  260.     dc.l    $10
  261.     ds.l    2
  262.  
  263.  
  264.  
  265. t_1    dc.b    '\MOTOR',0
  266. t_2    dc.b    '\SIDE',0
  267. t_3    dc.b    'DIR',0
  268. t_4    dc.b    '\STEP',0
  269. t_5    dc.b    '\SELECT 3',0
  270. t_6    dc.b    '\SELECT 2',0
  271. t_7    dc.b    '\SELECT 1',0
  272. t_8    dc.b    '\SELECT 0',0
  273. t_9    dc.b    '\READY',0
  274. t_10    dc.b    '\TRACK 0',0
  275. t_11    dc.b    '\WR PROT',0
  276. t_12    dc.b    '\CHANGE',0
  277. t_13    dc.b    'Quit',0
  278.  
  279.     tags
  280.     library    igs,1
  281.     finish
  282.  
  283. _LVOigsCleanup        equ    -30
  284. _LVOigsAddTracker    equ    -36
  285. _LVOigsFreeTracker    equ    -42
  286. _LVOigsOpenScreen    equ    -48
  287. _LVOigsOpenWindow    equ    -54
  288. _LVOigsAlert        equ    -60
  289. _LVOigsOpenScreenTagList    equ    -66
  290. _LVOigsOpenWindowTagList    equ    -72
  291. _LVOigsText        equ    -78
  292. _LVOigsWaitIDCMP        equ    -84
  293. _LVOigsGetIDCMP        equ    -90
  294. _LVOigsStoreWaitIDCMP    equ    -96
  295. _LVOigsStoreGetIDCMP    equ    -102
  296. _LVOigsItemAddr        equ    -108
  297. _LVOigsCommandItemAddr    equ    -114
  298. _LVOigsMultiRequest    equ    -120
  299. _LVOigsEvaluate        equ    -126
  300. _LVOigsEvaluateError    equ    -132
  301. _LVOigsHandleGMsg    equ    -138
  302. _LVOigsSetMenu        equ    -144
  303. _LVOigsCreateGadgets    equ    -150
  304. _LVOigsControlMsgs    equ    -156
  305. _LVOigsPrintErr        equ    -162
  306. _LVOigsSetCleanupRoutine    equ    -168
  307.  
  308.