Advertisement
Guest User

routine calcul matrice

a guest
Mar 22nd, 2015
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. tempdata:
  2.     .db 0,0,0,0,0,0,0,0,0,0
  3.         .db 0,0,0,0,0,0,0,0,0,0
  4. GRotatesur_X:
  5.     .db 0,0,0
  6. gCalculMatrix:
  7.     ld ixl,128
  8.     ld hl,GRotatesur_X
  9.         ld b,(hl)
  10.         inc hl
  11.         ld c,(hl)  
  12.         inc hl
  13.         ld d,(hl)
  14.         ;50
  15.        
  16.         ld hl,SinTable/256
  17.         ld l,c
  18.         ld a,(hl)
  19.         ld (gMatrix+2),a    ;optimisation
  20.     ;34
  21.         ld a,b
  22.         add a,c
  23.         ld e,a
  24.         ld l,a
  25.         ld a,(hl)
  26.         ld (tempdata+1),a       ;sin(x+y)
  27.         ld a,ixl
  28.         sub c
  29.         ld l,a
  30.         ld a,(hl)
  31.         ld (tempdata),a ;cos(x+y)
  32.         ld a,e
  33.         add a,d
  34.         ld l,a
  35.         ld a,(hl)
  36.         ld (tempdata+13),a  ;sin(x+y+z)
  37.         ld a, ixl
  38.         sub l
  39.         ld l,a
  40.         ld a,(hl)
  41.         ld (tempdata+12),a  ;cos(x+y+z)
  42.         ld a,e
  43.         sub d
  44.         ld l,a
  45.         ld a,(hl)
  46.         ld (tempdata+15),a  ;sin(x+y-z)
  47.         ld a,ixl
  48.         sub l
  49.         ld l,a
  50.         ld a,(hl)
  51.         ld (tempdata+14),a  ;cos(x+y-z)
  52.     ;196
  53.    
  54.    
  55.         ld a,b
  56.         sub c
  57.         ld e,a
  58.         ld l,a
  59.         ld a,(hl)
  60.         ld (tempdata+3),a   ;sin(x-y)
  61.         ld a,ixl
  62.         sub e
  63.         ld l,a
  64.         ld a,(hl)
  65.         ld (tempdata+2),a   ;cos(x-y)
  66.         ld a,e
  67.         add d
  68.         ld l,a
  69.         ld a,(hl)
  70.         ld (tempdata+17),a  ;sin(x-y+z)
  71.         ld a,ixl
  72.         sub l
  73.         ld l,a
  74.         ld a,(hl)
  75.         ld (tempdata+16),a  ;cos(x-y+z)
  76.         ld a,e
  77.         sub d
  78.         ld l,a
  79.         ld a,(hl)
  80.         ld (tempdata+19),a  ;sin(x-y-z)
  81.         ld a,ixl
  82.         sub l
  83.         ld l,a
  84.         ld a,(hl)
  85.         ld (tempdata+18),a  ;cos(x-y-z)
  86.     ;196
  87.    
  88.         ld a,b
  89.         add a,d
  90.         ld l,a
  91.         ld a,(hl)
  92.         ld (tempdata+9),a   ;sin(x+z)
  93.         ld a,ixl
  94.         sub l
  95.         ld l,a
  96.         ld a,(hl)
  97.         ld (tempdata+8),a   ;cos(x+z)
  98.         ld a,b
  99.         sub d
  100.         ld l,a
  101.         ld a,(hl)
  102.         ld (tempdata+11),a  ;sin(x-z)
  103.         ld a,ixl
  104.         sub l
  105.         ld l,a
  106.         ld a,(hl)
  107.         ld (tempdata+10),a  ;cos(x-z)
  108.     ;128
  109.         ld a,c
  110.         add a,d
  111.         ld l,a
  112.         ld a,(hl)
  113.         ld (tempdata+5),a   ;sin(y+z)
  114.         ld a,ixl
  115.         sub l
  116.         ld l,a
  117.         ld a,(hl)
  118.         ld (tempdata+4),a   ;cos(y+z)
  119.         ld a,c
  120.         sub d
  121.         ld l,a
  122.         ld a,(hl)
  123.         ld (tempdata+7),a   ;sin(y-z)
  124.         ld a,ixl
  125.         sub l
  126.         ld l,a
  127.         ld a,(hl)
  128.         ld (tempdata+6),a   ;cos(y-z)
  129.     ;128
  130.    
  131.     ;total: 732
  132.    
  133.     ;calculs
  134.     ld ix, tempdata
  135.     ;14
  136.     ;matrice 0 et 1
  137.     ld hl,(tempdata+4)
  138.     ld de,(tempdata+6)
  139.     ld a,l
  140.     add a,e
  141.     rra
  142.     ld l,a
  143.     ld a,h
  144.     add a,d
  145.     rra
  146.     ld h,a
  147.     ld (gMatrix),hl
  148.     ;84
  149.     ;matrice 4 et 5
  150.     ld hl,(tempdata+12)
  151.     ld de,(tempdata+18)
  152.     ld bc,(tempdata+10)
  153.     ld a,l
  154.     sub (ix+14)
  155.     add a,(ix+16)
  156.     sub e
  157.     ld l,a
  158.     ld a,b
  159.     add a,(ix+9)
  160.     add a,a
  161.     ld b,a
  162.     ld a,l
  163.     sub b
  164.     scf
  165.     ccf
  166.     rra
  167.     rra
  168.     ld l,a
  169.     ld a,(tempdata+8)
  170.     add a,c
  171.     add a,a
  172.     sub (ix+17)
  173.     add a, d
  174.     sub h
  175.     add a,(ix+15)
  176.     scf
  177.     ccf
  178.     rra
  179.     rra
  180.     ld h,a
  181.     ld (gMatrix+4),hl
  182.     ;252
  183.     ;matrice 6 et 10
  184.     ld hl,(tempdata)
  185.     ld de,(tempdata+2)
  186.     xor a
  187.     sub d
  188.     sub h
  189.     rra
  190.     ld (gMatrix+6),a
  191.     ld a,e
  192.     add a,l
  193.     rra
  194.     ld (gMatrix+10),a
  195.     ;90
  196.     ;matrice 8 et 9
  197.     ld hl,(tempdata+12)
  198.     ld de,(tempdata+18)
  199.         ld a,(tempdata+10)
  200.     sub (ix+8)
  201.     add a,a
  202.     sub h
  203.     add a, (ix+17)
  204.     sub(ix+15)
  205.     add a,d
  206.     scf
  207.     ccf
  208.     rra
  209.     rra
  210.     ld c,a
  211.     ld a,b
  212.     add a,(ix+14)
  213.     sub l
  214.     sub e
  215.     add a,(ix+16)
  216.     scf
  217.     ccf
  218.     rra
  219.     rra
  220.     ld h,a
  221.     ld l,c
  222.     ld (gMatrix+8),a
  223.     ;211
  224.     ret
  225.     ;1436
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement