home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: Devpac ST / Lowe_DevpacST.img / AESLIB.S next >
Encoding:
Text File  |  1988-10-03  |  3.5 KB  |  181 lines

  1.  
  2. * AES Library Copyright (C) HiSoft 1988
  3. * this MUST be assembled to either executable or GST linkable, NOT DRI code
  4.  
  5. * sets section order to TEXT,DATA,BSS
  6.  
  7. * 27.7.88    adjusted table and addr_in for TOS 1.04 calls
  8. * 3.10.88    control made 5 words instead of 4!
  9.  
  10. * the actual calling of the AES
  11.  
  12.     MODULE    LowLevelAES
  13.  
  14.     XDEF    CALL_AES,control,global,int_in,int_out
  15.     XDEF    addr_in,addr_out,aes_params
  16.  
  17.     SECTION    TEXT
  18. * call an AES routine
  19. * in:    d0.w=AES function number
  20. * out    d0.w=int_out value
  21. * uses    d0-d2/a0-a2
  22. * (assumes control4 needs to be zero)
  23. CALL_AES    lea    control,a1
  24.     move.w    d0,(a1)+            store the op code
  25.     sub.w    #10,d0
  26.     mulu    #3,d0            size is the priority, not speed
  27.     lea    gem_ctrl_list,a0
  28.     add.w    d0,a0            points to the entry
  29.     moveq    #0,d0
  30.     move.b    (a0)+,d0
  31.     move.w    d0,(a1)+        do control1
  32.     move.b    (a0)+,d0
  33.     move.w    d0,(a1)+        and control2
  34.     move.b    (a0)+,d0
  35.     move.w    d0,(a1)+        and control3
  36.     clr.w    (a1)            assumes control4=0 (all except RSRC_GADDR)
  37.     move.l    #aes_params,d1
  38.     move.w    #200,d0            function number
  39.     trap    #2
  40.     move.w    int_out,d0        usually a returned value
  41.     rts
  42.  
  43.     SECTION    DATA
  44. * this is a table of pointers to all the AES arrays
  45. aes_params    dc.l    control,global,int_in,int_out,addr_in,addr_out
  46.  
  47. * this is the list of Control parameters for the AES calls
  48. * contains control(1..3), comment is the function number
  49. * (an asterisk indicates it is not defined)
  50. gem_ctrl_list
  51.     dc.b    0,1,0    10
  52.     dc.b    2,1,1    11
  53.     dc.b    2,1,1    12
  54.     dc.b    0,1,1    13
  55.     dc.b    2,1,1    14
  56.     dc.b    1,1,1    15
  57.     dc.b    0,0,0    16*
  58.     dc.b    0,0,0    17*
  59.     dc.b    0,0,0    18*
  60.     dc.b    0,1,0    19
  61.     dc.b    0,1,0    20
  62.     dc.b    3,5,0    21
  63.     dc.b    5,5,0    22
  64.     dc.b    0,1,1    23
  65.     dc.b    2,1,0    24
  66.     dc.b    16,7,1    25
  67.     dc.b    2,1,0    26
  68.     dc.b    0,0,0    27*
  69.     dc.b    0,0,0    28*
  70.     dc.b    0,0,0    29*
  71.     dc.b    1,1,1    30
  72.     dc.b    2,1,1    31
  73.     dc.b    2,1,1    32
  74.     dc.b    2,1,1    33
  75.     dc.b    1,1,2    34
  76.     dc.b    1,1,1    35
  77.     dc.b    0,0,0    36*
  78.     dc.b    0,0,0    37*
  79.     dc.b    0,0,0    38*
  80.     dc.b    0,0,0    39*
  81.     dc.b    2,1,1    40
  82.     dc.b    1,1,1    41
  83.     dc.b    6,1,1    42
  84.     dc.b    4,1,1    43
  85.     dc.b    1,3,1    44
  86.     dc.b    2,1,1    45
  87.     dc.b    4,2,1    46
  88.     dc.b    8,1,1    47
  89.     dc.b    0,0,0    48*
  90.     dc.b    0,0,0    49*
  91.     dc.b    1,1,1    50
  92.     dc.b    9,1,0    51
  93.     dc.b    1,1,1    52
  94.     dc.b    1,1,0    53
  95.     dc.b    0,5,1    54
  96.     dc.b    0,0,0    55*
  97.     dc.b    0,0,0    56*
  98.     dc.b    0,0,0    57*
  99.     dc.b    0,0,0    58*
  100.     dc.b    0,0,0    59*
  101.     dc.b    0,0,0    60*
  102.     dc.b    0,0,0    61*
  103.     dc.b    0,0,0    62*
  104.     dc.b    0,0,0    63*
  105.     dc.b    0,0,0    64*
  106.     dc.b    0,0,0    65*
  107.     dc.b    0,0,0    66*
  108.     dc.b    0,0,0    67*
  109.     dc.b    0,0,0    68*
  110.     dc.b    0,0,0    69*
  111.     dc.b    4,3,0    70
  112.     dc.b    8,3,0    71
  113.     dc.b    6,1,0    72
  114.     dc.b    8,1,0    73
  115.     dc.b    8,1,0    74
  116.     dc.b    4,1,1    75
  117.     dc.b    3,1,1    76
  118.     dc.b    0,5,0    77
  119.     dc.b    1,1,1    78
  120.     dc.b    0,5,0    79
  121.     dc.b    0,1,1    80
  122.     dc.b    0,1,1    81
  123.     dc.b    0,0,0    82*
  124.     dc.b    0,0,0    83*
  125.     dc.b    0,0,0    84*
  126.     dc.b    0,0,0    85*
  127.     dc.b    0,0,0    86*
  128.     dc.b    0,0,0    87*
  129.     dc.b    0,0,0    88*
  130.     dc.b    0,0,0    89*
  131.     dc.b    0,2,2    90
  132.     dc.b    0,2,3    91
  133.     dc.b    0,0,0    92*
  134.     dc.b    0,0,0    93*
  135.     dc.b    0,0,0    94*
  136.     dc.b    0,0,0    95*
  137.     dc.b    0,0,0    96*
  138.     dc.b    0,0,0    97*
  139.     dc.b    0,0,0    98*
  140.     dc.b    0,0,0    99*
  141.     dc.b    5,1,0    100
  142.     dc.b    5,1,0    101
  143.     dc.b    1,1,0    102
  144.     dc.b    1,1,0    103
  145.     dc.b    2,5,0    104
  146.     dc.b    6,1,0    105
  147.     dc.b    2,1,0    106
  148.     dc.b    1,1,0    107
  149.     dc.b    6,5,0    108
  150.     dc.b    0,0,0    109
  151.     dc.b    0,1,1    110
  152.     dc.b    0,1,0    111
  153.     dc.b    2,1,0    112 ** Control(4)=1 **
  154.     dc.b    2,1,1    113
  155.     dc.b    1,1,1    114
  156.     dc.b    0,0,0    115
  157.     dc.b    0,0,0    116
  158.     dc.b    0,0,0    117
  159.     dc.b    0,0,0    118
  160.     dc.b    0,0,0    119
  161.     dc.b    0,1,2    120
  162.     dc.b    3,1,2    121
  163.     dc.b    1,1,1    122
  164.     dc.b    1,1,1    123
  165.     dc.b    0,1,1    124
  166.     dc.b    0,1,3    125
  167.     even
  168.  
  169.     SECTION    BSS
  170. * these don't need initialising so can go in the BSS section
  171. control        ds.w    5
  172. global        ds.w    14
  173. int_in        ds.w    16
  174. int_out        ds.w    7
  175. addr_in        ds.l    3
  176. addr_out    ds.l    1
  177.  
  178.  
  179. *********** END OF AES *****************
  180.  
  181.