home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
- void draw_spans8wire(register int y __asm__("a4"), register int ey __asm__("d5"));
-
- __asm ("
-
- .equ y,a4
- .equ dest,a3
- .equ mults,a2
- .equ scan,a1
- .equ buf,a0 | parameter ...
-
- .equ ey,d5
- .equ len,d1
- .equ sx,d0
-
- .text
- .globl _draw_spans8wire
- | void draw_spans8wire(register int y __asm__ (a4), register int ey __asm__ (d5))
- _draw_spans8wire:
- subl y,ey | y < ey
- subql #1,ey | (y - 1) <= ey
- blt .bigEnd8wire
-
- moveml a2-a3,sp@-
- movel _localDim+26,dest | localDim.frameBuffer
-
- lea @(_scan, y:l:8), scan | scan[y][]
- movel _multRows,mults
- lea mults@(y:l:4),mults
- .bigLoop8wire:
- movel mults@+,buf | multRows[y]
- movel scan@+,sx | FIX_INT(scan[y][0])
- movel scan@+,len | FIX_INT(scan[y][1])
- subl sx,len | scan[y][1] - sx
- bles .noSpan8wire | len > 0
- addl dest,buf | localDim.frameBuffer + multRows[y]
- moveb #0x15,buf@(sx)
- moveb #0x15,buf@(len)
- .noSpan8wire:
- dbra ey,.bigLoop8wire
- moveml sp@+,a2-a3
- .bigEnd8wire:
- rts
- .even
- ");
-