|
|
1.1 ! root 1: /* These are optimized x86 assembly versions of pfield_linetoscr. ! 2: * Feel free to send me Sparc/PPC/Alpha versions of this... :) ! 3: */ ! 4: ! 5: #ifdef __DOS__ ! 6: #define SYM(NAME) _##NAME ! 7: #define _color_regs _bpl_info ! 8: #else ! 9: #define SYM(NAME) NAME ! 10: #endif ! 11: ! 12: /* Urgl... */ ! 13: #define color_regs bpl_info ! 14: ! 15: #ifndef __DOS__ ! 16: .local lastcolor ! 17: .comm lastcolor,2 ! 18: .align 16 ! 19: #else ! 20: .comm lastcolor,2 ! 21: .align 8 ! 22: #endif ! 23: .globl pfield_linetoscr_full8 ! 24: pfield_linetoscr_full8: ! 25: pushl %ebp ! 26: pushl %edi ! 27: pushl %esi ! 28: pushl %ebx ! 29: movl 20(%esp),%esi ! 30: movl 24(%esp),%edi ! 31: ! 32: xorl %edx,%edx ! 33: movl SYM(diwfirstword),%eax ! 34: cmpl $4,%eax ! 35: jc .Loops1 ! 36: movl %edx,SYM(pixdata)-4(%eax) ! 37: movl %edx,SYM(spixstate)-4(%eax) ! 38: .Loops1: ! 39: movl SYM(diwlastword),%eax ! 40: movl %edx,SYM(pixdata)(%eax) ! 41: movl %edx,SYM(spixstate)(%eax) ! 42: ! 43: movl SYM(acolors),%edx ! 44: movb %dl,%dh ! 45: movw %dx,%ax ! 46: bswapl %eax ! 47: movw %dx,%ax ! 48: ! 49: movl SYM(xlinebuffer),%ecx ! 50: jmp .L71 ! 51: .L8: ! 52: cmpl 24(%esp),%esi ! 53: jge .L5 ! 54: movl %eax,(%ecx) ! 55: addl $4,%ecx ! 56: movl %edx,%esi ! 57: .L71: ! 58: leal 4(%esi),%edx ! 59: cmpl %edx,SYM(diwfirstword) ! 60: jg .L8 ! 61: .L5: ! 62: movl %ecx,SYM(xlinebuffer) ! 63: ! 64: cmpl $0,SYM(bplham) ! 65: je .L9 ! 66: cmpl $6,SYM(bplplanecnt) ! 67: jne .L9 ! 68: ! 69: /* HAM */ ! 70: /* This is invalid in pfield_linetoscr, but it's OK here */ ! 71: movw SYM(color_regs),%ax ! 72: movw %ax,lastcolor ! 73: .L73: ! 74: cmpl %esi,SYM(diwlastword) ! 75: jle .L27 ! 76: cmpl 24(%esp),%esi ! 77: jge .L27 ! 78: movzbl SYM(pixdata)(%esi),%eax ! 79: movl %eax,%edx ! 80: andl $48,%edx ! 81: cmpl $16,%edx ! 82: je .L16 ! 83: jg .L21 ! 84: testl %edx,%edx ! 85: je .L15 ! 86: jmp .L14 ! 87: .L21: ! 88: cmpl $32,%edx ! 89: je .L17 ! 90: cmpl $48,%edx ! 91: je .L18 ! 92: jmp .L14 ! 93: .L15: ! 94: movw SYM(color_regs)(,%eax,2),%ax ! 95: movw %ax,lastcolor ! 96: jmp .L14 ! 97: .L16: ! 98: movw lastcolor,%dx ! 99: andw $4080,%dx ! 100: andw $15,%ax ! 101: jmp .L72 ! 102: .L17: ! 103: movzbw lastcolor,%dx ! 104: andw $15,%ax ! 105: salw $8,%ax ! 106: jmp .L72 ! 107: .L18: ! 108: movw lastcolor,%dx ! 109: andw $3855,%dx ! 110: andw $15,%ax ! 111: salw $4,%ax ! 112: .L72: ! 113: orw %ax,%dx ! 114: movw %dx,lastcolor ! 115: .L14: ! 116: cmpb $0,SYM(spixstate)(%esi) ! 117: je .L22 ! 118: movsbl SYM(spixels)(%esi),%eax ! 119: movl SYM(acolors)+64(,%eax,4),%edx ! 120: movl SYM(xlinebuffer),%eax ! 121: movb %dl,(%eax) ! 122: incl SYM(xlinebuffer) ! 123: movb $0,SYM(spixstate)(%esi) ! 124: movb $0,SYM(spixels)(%esi) ! 125: jmp .L24 ! 126: .L22: ! 127: movzwl lastcolor,%eax ! 128: movl SYM(xcolors)(,%eax,4),%edx ! 129: movl SYM(xlinebuffer),%eax ! 130: movb %dl,(%eax) ! 131: incl SYM(xlinebuffer) ! 132: .L24: ! 133: incl %esi ! 134: jmp .L73 ! 135: .L9: ! 136: cmpl $0,SYM(bpldualpf) ! 137: je .L74 ! 138: ! 139: /* Dual Playfield */ ! 140: ! 141: movl $SYM(dblpf_ind1),%ebp ! 142: movl $SYM(dblpf_2nd1),%edi ! 143: cmpl $0,SYM(bpldualpfpri) ! 144: je .L29 ! 145: movl $SYM(dblpf_ind2),%ebp ! 146: movl $SYM(dblpf_2nd2),%edi ! 147: .L29: ! 148: cmpl %esi,SYM(diwlastword) ! 149: jle .L27 ! 150: ! 151: cmpl 24(%esp),%esi ! 152: jge .L27 ! 153: ! 154: xorl %edx,%edx ! 155: movl SYM(pixdata)(%esi),%eax ! 156: movl SYM(spixstate)(%esi),%ebx ! 157: testl %ebx,%ebx ! 158: jne .L101 ! 159: ! 160: /* no sprites */ ! 161: ! 162: movb %al,%dl ! 163: movb (%ebp,%edx,4),%dl ! 164: movb SYM(acolors)(,%edx,4),%cl ! 165: movb %ah,%dl ! 166: movb (%ebp,%edx,4),%dl ! 167: movb SYM(acolors)(,%edx,4),%ch ! 168: bswapl %eax ! 169: bswapl %ecx ! 170: movb %al,%dl ! 171: movb (%ebp,%edx,4),%dl ! 172: movb SYM(acolors)(,%edx,4),%cl ! 173: movb %ah,%dl ! 174: movb (%ebp,%edx,4),%dl ! 175: movb SYM(acolors)(,%edx,4),%ch ! 176: bswapl %ecx ! 177: ! 178: movl SYM(xlinebuffer),%eax ! 179: movl %ecx,(%eax) ! 180: addl $4,SYM(xlinebuffer) ! 181: addl $4,%esi ! 182: jmp .L29 ! 183: ! 184: .L101: ! 185: ! 186: /* dual playfield with sprites */ ! 187: ! 188: testb %bl,%bl ! 189: je .La3 ! 190: movb %al,%dl ! 191: movl (%edi,%edx,4),%edx ! 192: testl %edx,%edx ! 193: je .La2 ! 194: pushl %ebp ! 195: movl %edx,%ebp ! 196: movb %bl,%dl ! 197: cmpl plfpri(,%ebp,4),%edx ! 198: popl %ebp ! 199: jge .La3 ! 200: .La2: ! 201: movb SYM(spixels)(%esi),%dl ! 202: movb SYM(acolors)+64(,%edx,4),%cl ! 203: jmp .La1 ! 204: .La3: ! 205: movb %al,%dl ! 206: movb (%ebp,%edx,4),%dl ! 207: movb SYM(acolors)(,%edx,4),%cl ! 208: .La1: ! 209: ! 210: testb %bh,%bh ! 211: je .La6 ! 212: movb %ah,%dl ! 213: movl (%edi,%edx,4),%edx ! 214: testl %edx,%edx ! 215: je .La5 ! 216: pushl %ebp ! 217: movl %edx,%ebp ! 218: movb %bh,%dl ! 219: cmpl plfpri(,%ebp,4),%edx ! 220: popl %ebp ! 221: jge .La6 ! 222: .La5: ! 223: movb SYM(spixels)+1(%esi),%dl ! 224: movb SYM(acolors)+64(,%edx,4),%ch ! 225: jmp .La4 ! 226: .La6: ! 227: movb %ah,%dl ! 228: movb (%ebp,%edx,4),%dl ! 229: movb SYM(acolors)(,%edx,4),%ch ! 230: .La4: ! 231: bswapl %ecx ! 232: bswapl %eax ! 233: bswapl %ebx ! 234: ! 235: testb %bl,%bl ! 236: je .La9 ! 237: movb %al,%dl ! 238: movl (%edi,%edx,4),%edx ! 239: testl %edx,%edx ! 240: je .La8 ! 241: pushl %ebp ! 242: movl %edx,%ebp ! 243: movb %bl,%dl ! 244: cmpl plfpri(,%ebp,4),%edx ! 245: popl %ebp ! 246: jge .La9 ! 247: .La8: ! 248: movb SYM(spixels)+3(%esi),%dl ! 249: movb SYM(acolors)+64(,%edx,4),%cl ! 250: jmp .La7 ! 251: .La9: ! 252: movb %al,%dl ! 253: movb (%ebp,%edx,4),%dl ! 254: movb SYM(acolors)(,%edx,4),%cl ! 255: .La7: ! 256: ! 257: testb %bh,%bh ! 258: je .La12 ! 259: movb %ah,%dl ! 260: movl (%edi,%edx,4),%edx ! 261: testl %edx,%edx ! 262: je .La11 ! 263: pushl %ebp ! 264: movl %edx,%ebp ! 265: movb %bh,%dl ! 266: cmpl plfpri(,%ebp,4),%edx ! 267: popl %ebp ! 268: jge .La12 ! 269: .La11: ! 270: movb SYM(spixels)+2(%esi),%dl ! 271: movb SYM(acolors)+64(,%edx,4),%ch ! 272: jmp .La10 ! 273: .La12: ! 274: movb %ah,%dl ! 275: movb (%ebp,%edx,4),%dl ! 276: movb SYM(acolors)(,%edx,4),%ch ! 277: .La10: ! 278: movl $0,SYM(spixstate)(%esi) ! 279: movl $0,SYM(spixels)(%esi) ! 280: addl $4,%esi ! 281: ! 282: bswapl %ecx ! 283: ! 284: movl SYM(xlinebuffer),%eax ! 285: movl %ecx,(%eax) ! 286: addl $4,SYM(xlinebuffer) ! 287: ! 288: jmp .L29 ! 289: ! 290: /* normal case */ ! 291: ! 292: .L65: ! 293: cmpl 24(%esp),%esi ! 294: jge .L27 ! 295: ! 296: xorl %edx,%edx ! 297: movl SYM(pixdata)(%esi),%eax ! 298: movl SYM(spixstate)(%esi),%ebx ! 299: testl %ebx,%ebx ! 300: jne .L100 ! 301: ! 302: /* no sprites */ ! 303: ! 304: movb %al,%dl ! 305: movb SYM(acolors)(,%edx,4),%cl ! 306: movb %ah,%dl ! 307: movb SYM(acolors)(,%edx,4),%ch ! 308: bswapl %eax ! 309: bswapl %ecx ! 310: movb %al,%dl ! 311: movb SYM(acolors)(,%edx,4),%cl ! 312: movb %ah,%dl ! 313: movb SYM(acolors)(,%edx,4),%ch ! 314: bswapl %ecx ! 315: ! 316: movl SYM(xlinebuffer),%eax ! 317: movl %ecx,(%eax) ! 318: addl $4,SYM(xlinebuffer) ! 319: addl $4,%esi ! 320: jmp .L74 ! 321: ! 322: .L100: ! 323: /* Here, we have to deal with sprites, too. */ ! 324: ! 325: testb %bl,%bl ! 326: je .L46 ! 327: testb %al,%al ! 328: je .L47 ! 329: movb %bl,%dl ! 330: cmpl SYM(plfpri)+8,%edx ! 331: jge .L46 ! 332: .L47: ! 333: movb SYM(spixels)(%esi),%dl ! 334: movb SYM(acolors)+64(,%edx,4),%cl ! 335: jmp .L75 ! 336: .L46: ! 337: movb %al,%dl ! 338: movb SYM(acolors)(,%edx,4),%cl ! 339: .L75: ! 340: ! 341: testb %bh,%bh ! 342: je .L51 ! 343: testb %ah,%ah ! 344: je .L52 ! 345: movb %bh,%dl ! 346: cmpl SYM(plfpri)+8,%edx ! 347: jge .L51 ! 348: ! 349: .L52: ! 350: movb SYM(spixels)+1(%esi),%dl ! 351: movb SYM(acolors)+64(,%edx,4),%ch ! 352: jmp .L76 ! 353: .L51: ! 354: movb %ah,%dl ! 355: movb SYM(acolors)(,%edx,4),%ch ! 356: .L76: ! 357: ! 358: bswapl %ebx ! 359: bswapl %ecx ! 360: bswapl %eax ! 361: ! 362: testb %bl,%bl ! 363: je .L56 ! 364: testb %al,%al ! 365: je .L55 ! 366: movb %bl,%dl ! 367: cmpl SYM(plfpri)+8,%edx ! 368: jge .L56 ! 369: .L55: ! 370: movb SYM(spixels)+3(%esi),%dl ! 371: movb SYM(acolors)+64(,%edx,4),%cl ! 372: jmp .L57 ! 373: .L56: ! 374: movb %al,%dl ! 375: movb SYM(acolors)(,%edx,4),%cl ! 376: .L57: ! 377: ! 378: testb %bh,%bh ! 379: je .L58 ! 380: testb %ah,%ah ! 381: je .L59 ! 382: movb %bh,%dl ! 383: cmpl SYM(plfpri)+8,%edx ! 384: jge .L58 ! 385: .L59: ! 386: movb SYM(spixels)+2(%esi),%dl ! 387: movb SYM(acolors)+64(,%edx,4),%ch ! 388: jmp .L60 ! 389: .L58: ! 390: movb %ah,%dl ! 391: movb SYM(acolors)(,%edx,4),%ch ! 392: .L60: ! 393: movl $0,SYM(spixstate)(%esi) ! 394: movl $0,SYM(spixels)(%esi) ! 395: addl $4,%esi ! 396: ! 397: bswapl %ecx ! 398: ! 399: movl SYM(xlinebuffer),%eax ! 400: movl %ecx,(%eax) ! 401: addl $4,SYM(xlinebuffer) ! 402: .L74: ! 403: cmpl %esi,SYM(diwlastword) ! 404: jg .L65 ! 405: .L27: ! 406: ! 407: /* Finish off the line */ ! 408: ! 409: movl SYM(acolors),%edx ! 410: movb %dl,%dh ! 411: movw %dx,%ax ! 412: bswapl %eax ! 413: movw %dx,%ax ! 414: ! 415: movl SYM(xlinebuffer),%ecx ! 416: movl 24(%esp),%edi ! 417: .L70: ! 418: cmpl %edi,%esi ! 419: jge .L66 ! 420: ! 421: movl %eax,(%ecx) ! 422: addl $4,%ecx ! 423: addl $4,%esi ! 424: jmp .L70 ! 425: .L66: ! 426: movl %ecx,SYM(xlinebuffer) ! 427: ! 428: popl %ebx ! 429: popl %esi ! 430: popl %edi ! 431: popl %ebp ! 432: ret ! 433: .Lfe2: ! 434: ! 435: #ifndef __DOS__ ! 436: .align 16 ! 437: #else ! 438: .align 8 ! 439: #endif ! 440: .globl pfield_linetoscr_full16 ! 441: pfield_linetoscr_full16: ! 442: pushl %edi ! 443: pushl %esi ! 444: pushl %ebx ! 445: pushl %ebp ! 446: ! 447: xorl %edx,%edx ! 448: movl SYM(diwfirstword),%eax ! 449: cmpl $4,%eax ! 450: jc .Loops2 ! 451: movl %edx,SYM(pixdata)-4(%eax) ! 452: movl %edx,SYM(spixstate)-4(%eax) ! 453: .Loops2: ! 454: movl SYM(diwlastword),%eax ! 455: movl %edx,SYM(pixdata)(%eax) ! 456: movl %edx,SYM(spixstate)(%eax) ! 457: ! 458: movl 20(%esp),%esi ! 459: ! 460: movw SYM(acolors),%ax ! 461: sall $16,%eax ! 462: movw SYM(acolors),%ax ! 463: ! 464: movl SYM(xlinebuffer),%ecx ! 465: jmp .L2443 ! 466: .L2447: ! 467: cmpl 24(%esp),%esi ! 468: jge .L2400 ! 469: movl %eax,(%ecx) ! 470: movl %eax,4(%ecx) ! 471: addl $8,%ecx ! 472: movl %edx,%esi ! 473: .L2443: ! 474: leal 4(%esi),%edx ! 475: cmpl %edx,SYM(diwfirstword) ! 476: jg .L2447 ! 477: .L2400: ! 478: movl %ecx,SYM(xlinebuffer) ! 479: ! 480: cmpl $0,SYM(bplham) ! 481: je .L2448 ! 482: cmpl $6,SYM(bplplanecnt) ! 483: jne .L2448 ! 484: ! 485: /* HAM */ ! 486: ! 487: /* This is invalid in pfield_linetoscr, but it's OK here */ ! 488: movw SYM(color_regs),%ax ! 489: movw %ax,lastcolor ! 490: .L2499: ! 491: cmpl %esi,SYM(diwlastword) ! 492: jle .L2027 ! 493: cmpl 24(%esp),%esi ! 494: jge .L2494 ! 495: movzbl SYM(pixdata)(%esi),%eax ! 496: movl %eax,%edx ! 497: andl $48,%edx ! 498: cmpl $16,%edx ! 499: je .L2455 ! 500: jg .L2460 ! 501: testl %edx,%edx ! 502: je .L2454 ! 503: jmp .L2453 ! 504: .L2460: ! 505: cmpl $32,%edx ! 506: je .L2456 ! 507: cmpl $48,%edx ! 508: je .L2457 ! 509: jmp .L2453 ! 510: .L2454: ! 511: movw SYM(color_regs)(,%eax,2),%ax ! 512: movw %ax,lastcolor ! 513: jmp .L2453 ! 514: .L2455: ! 515: movw lastcolor,%dx ! 516: andw $4080,%dx ! 517: andw $15,%ax ! 518: jmp .L2498 ! 519: .L2456: ! 520: movzbw lastcolor,%dx ! 521: andw $15,%ax ! 522: salw $8,%ax ! 523: jmp .L2498 ! 524: .L2457: ! 525: movw lastcolor,%dx ! 526: andw $3855,%dx ! 527: andw $15,%ax ! 528: salw $4,%ax ! 529: .L2498: ! 530: orw %ax,%dx ! 531: movw %dx,lastcolor ! 532: .L2453: ! 533: cmpb $0,SYM(spixstate)(%esi) ! 534: je .L2461 ! 535: movsbl SYM(spixels)(%esi),%eax ! 536: movl SYM(acolors)+64(,%eax,4),%edx ! 537: movl SYM(xlinebuffer),%eax ! 538: movw %dx,(%eax) ! 539: addl $2,SYM(xlinebuffer) ! 540: movb $0,SYM(spixstate)(%esi) ! 541: movb $0,SYM(spixels)(%esi) ! 542: jmp .L2463 ! 543: .L2461: ! 544: movzwl lastcolor,%eax ! 545: movl SYM(xcolors)(,%eax,4),%edx ! 546: movl SYM(xlinebuffer),%eax ! 547: movw %dx,(%eax) ! 548: addl $2,SYM(xlinebuffer) ! 549: .L2463: ! 550: incl %esi ! 551: jmp .L2499 ! 552: .L2448: ! 553: cmpl $0,SYM(bpldualpf) ! 554: je .L2500 ! 555: ! 556: /* Dual Playfield */ ! 557: ! 558: xorl %edx,%edx ! 559: ! 560: movl $SYM(dblpf_ind1),%ebp ! 561: movl $SYM(dblpf_2nd1),%edi ! 562: cmpl $0,SYM(bpldualpfpri) ! 563: je .L2468 ! 564: movl $SYM(dblpf_ind2),%ebp ! 565: movl $SYM(dblpf_2nd2),%edi ! 566: .L2468: ! 567: cmpl %esi,SYM(diwlastword) ! 568: jle .L2027 ! 569: cmpl 24(%esp),%esi ! 570: jge .L2494 ! 571: ! 572: movl SYM(pixdata)(%esi),%eax ! 573: movl SYM(spixstate)(%esi),%ebx ! 574: testl %ebx,%ebx ! 575: jne .Lb0 ! 576: ! 577: /* Dual Playfield, no sprites */ ! 578: ! 579: movl SYM(xlinebuffer),%ebx ! 580: ! 581: movb %ah,%dl ! 582: movb (%ebp,%edx,4),%dl ! 583: movw SYM(acolors)(,%edx,4),%cx ! 584: sall $16,%ecx ! 585: movb %al,%dl ! 586: movb (%ebp,%edx,4),%dl ! 587: movw SYM(acolors)(,%edx,4),%cx ! 588: movl %ecx,(%ebx) ! 589: ! 590: bswapl %eax ! 591: movb %al,%dl ! 592: movb (%ebp,%edx,4),%dl ! 593: movw SYM(acolors)(,%edx,4),%cx ! 594: sall $16,%ecx ! 595: movb %ah,%dl ! 596: movb (%ebp,%edx,4),%dl ! 597: movw SYM(acolors)(,%edx,4),%cx ! 598: movl %ecx,4(%ebx) ! 599: addl $8,SYM(xlinebuffer) ! 600: addl $4,%esi ! 601: jmp .L2468 ! 602: ! 603: /* Dual Playfield with sprites */ ! 604: ! 605: .Lb0: ! 606: testb %bh,%bh ! 607: je .Lb3 ! 608: movb %ah,%dl ! 609: movl (%edi,%edx,4),%edx ! 610: testl %edx,%edx ! 611: je .Lb2 ! 612: pushl %ebp ! 613: movl %edx,%ebp ! 614: movb %bh,%dl ! 615: cmpl plfpri(,%ebp,4),%edx ! 616: popl %ebp ! 617: jge .Lb3 ! 618: .Lb2: ! 619: movb SYM(spixels)+1(%esi),%dl ! 620: movw SYM(acolors)+64(,%edx,4),%cx ! 621: jmp .Lb1 ! 622: .Lb3: ! 623: movb %ah,%dl ! 624: movb (%ebp,%edx,4),%dl ! 625: movw SYM(acolors)(,%edx,4),%cx ! 626: .Lb1: ! 627: sall $16,%ecx ! 628: ! 629: testb %bl,%bl ! 630: je .Lb6 ! 631: movb %al,%dl ! 632: movl (%edi,%edx,4),%edx ! 633: testl %edx,%edx ! 634: je .Lb5 ! 635: pushl %ebp ! 636: movl %edx,%ebp ! 637: movb %bl,%dl ! 638: cmpl plfpri(,%ebp,4),%edx ! 639: popl %ebp ! 640: jge .Lb6 ! 641: .Lb5: ! 642: movb SYM(spixels)(%esi),%dl ! 643: movw SYM(acolors)+64(,%edx,4),%cx ! 644: jmp .Lb4 ! 645: .Lb6: ! 646: movb %al,%dl ! 647: movb (%ebp,%edx,4),%dl ! 648: movw SYM(acolors)(,%edx,4),%cx ! 649: .Lb4: ! 650: pushl %eax ! 651: movl SYM(xlinebuffer),%eax ! 652: movl %ecx,(%eax) ! 653: popl %eax ! 654: ! 655: bswapl %ebx ! 656: bswapl %eax ! 657: ! 658: testb %bl,%bl ! 659: je .Lb9 ! 660: movb %al,%dl ! 661: movl (%edi,%edx,4),%edx ! 662: testl %edx,%edx ! 663: je .Lb8 ! 664: pushl %ebp ! 665: movl %edx,%ebp ! 666: movb %bl,%dl ! 667: cmpl plfpri(,%ebp,4),%edx ! 668: popl %ebp ! 669: jge .Lb9 ! 670: .Lb8: ! 671: movb SYM(spixels)+3(%esi),%dl ! 672: movw SYM(acolors)+64(,%edx,4),%cx ! 673: jmp .Lb7 ! 674: .Lb9: ! 675: movb %al,%dl ! 676: movb (%ebp,%edx,4),%dl ! 677: movw SYM(acolors)(,%edx,4),%cx ! 678: .Lb7: ! 679: sall $16,%ecx ! 680: ! 681: testb %bh,%bh ! 682: je .Lb12 ! 683: movb %ah,%dl ! 684: movl (%edi,%edx,4),%edx ! 685: testl %edx,%edx ! 686: je .Lb11 ! 687: pushl %ebp ! 688: movl %edx,%ebp ! 689: movb %bh,%dl ! 690: cmpl plfpri(,%ebp,4),%edx ! 691: popl %ebp ! 692: jge .Lb12 ! 693: .Lb11: ! 694: movb SYM(spixels)+2(%esi),%dl ! 695: movw SYM(acolors)+64(,%edx,4),%cx ! 696: jmp .Lb10 ! 697: .Lb12: ! 698: movb %ah,%dl ! 699: movb (%ebp,%edx,4),%dl ! 700: movw SYM(acolors)(,%edx,4),%cx ! 701: .Lb10: ! 702: movl $0,SYM(spixstate)(%esi) ! 703: movl $0,SYM(spixels)(%esi) ! 704: addl $4,%esi ! 705: ! 706: movl SYM(xlinebuffer),%eax ! 707: movl %ecx,4(%eax) ! 708: addl $8,SYM(xlinebuffer) ! 709: ! 710: jmp .L2468 ! 711: #if 0 ! 712: ! 713: movsbl SYM(spixels)(%esi),%eax ! 714: movl SYM(acolors)+64(,%eax,4),%edx ! 715: movl SYM(xlinebuffer),%eax ! 716: movw %dx,(%eax) ! 717: addl $2,SYM(xlinebuffer) ! 718: movb $0,SYM(spixstate)(%esi) ! 719: movb $0,SYM(spixels)(%esi) ! 720: jmp .L2476 ! 721: .L2474: ! 722: movzbl SYM(pixdata)(%esi),%eax ! 723: movl (%ebp,%eax,4),%eax ! 724: movl SYM(acolors)(,%eax,4),%edx ! 725: movl SYM(xlinebuffer),%eax ! 726: movw %dx,(%eax) ! 727: addl $2,SYM(xlinebuffer) ! 728: .L2476: ! 729: incl %esi ! 730: jmp .L2468 ! 731: #endif ! 732: ! 733: /* Normal case */ ! 734: .L2492: ! 735: cmpl 24(%esp),%esi ! 736: jge .L2027 ! 737: ! 738: xorl %edx,%edx ! 739: movl SYM(pixdata)(%esi),%eax ! 740: movl SYM(spixstate)(%esi),%ebx ! 741: testl %ebx,%ebx ! 742: jne .L20100 ! 743: ! 744: /* no sprites */ ! 745: ! 746: movl SYM(xlinebuffer),%ebp ! 747: ! 748: movb %ah,%dl ! 749: movw SYM(acolors)(,%edx,4),%cx ! 750: sall $16,%ecx ! 751: movb %al,%dl ! 752: movw SYM(acolors)(,%edx,4),%cx ! 753: movl %ecx,(%ebp) ! 754: ! 755: bswapl %eax ! 756: ! 757: movb %al,%dl ! 758: movw SYM(acolors)(,%edx,4),%cx ! 759: sall $16,%ecx ! 760: movb %ah,%dl ! 761: movw SYM(acolors)(,%edx,4),%cx ! 762: movl %ecx,4(%ebp) ! 763: ! 764: addl $8,%ebp ! 765: movl %ebp,SYM(xlinebuffer) ! 766: addl $4,%esi ! 767: jmp .L2500 ! 768: ! 769: .L20100: ! 770: /* Here, we have to deal with sprites, too. */ ! 771: ! 772: movl SYM(xlinebuffer),%ebp ! 773: ! 774: testb %bh,%bh ! 775: je .L2051 ! 776: testb %ah,%ah ! 777: je .L2052 ! 778: movb %bh,%dl ! 779: cmpl SYM(plfpri)+8,%edx ! 780: jge .L2051 ! 781: ! 782: .L2052: ! 783: movb SYM(spixels)+1(%esi),%dl ! 784: movw SYM(acolors)+64(,%edx,4),%cx ! 785: jmp .L2076 ! 786: .L2051: ! 787: movb %ah,%dl ! 788: movw SYM(acolors)(,%edx,4),%cx ! 789: .L2076: ! 790: sall $16,%ecx ! 791: ! 792: testb %bl,%bl ! 793: je .L2046 ! 794: testb %al,%al ! 795: je .L2047 ! 796: movb %bl,%dl ! 797: cmpl SYM(plfpri)+8,%edx ! 798: jge .L2046 ! 799: .L2047: ! 800: movb SYM(spixels)(%esi),%dl ! 801: movw SYM(acolors)+64(,%edx,4),%cx ! 802: jmp .L2075 ! 803: .L2046: ! 804: movb %al,%dl ! 805: movw SYM(acolors)(,%edx,4),%cx ! 806: .L2075: ! 807: ! 808: bswapl %ebx ! 809: bswapl %eax ! 810: movl %ecx,(%ebp) ! 811: ! 812: testb %bl,%bl ! 813: je .L2056 ! 814: testb %al,%al ! 815: je .L2055 ! 816: movb %bl,%dl ! 817: cmpl SYM(plfpri)+8,%edx ! 818: jge .L2056 ! 819: .L2055: ! 820: movb SYM(spixels)+3(%esi),%dl ! 821: movw SYM(acolors)+64(,%edx,4),%cx ! 822: jmp .L2057 ! 823: .L2056: ! 824: movb %al,%dl ! 825: movw SYM(acolors)(,%edx,4),%cx ! 826: .L2057: ! 827: sall $16,%ecx ! 828: ! 829: testb %bh,%bh ! 830: je .L2058 ! 831: testb %ah,%ah ! 832: je .L2059 ! 833: movb %bh,%dl ! 834: cmpl SYM(plfpri)+8,%edx ! 835: jge .L2058 ! 836: .L2059: ! 837: movb SYM(spixels)+2(%esi),%dl ! 838: movw SYM(acolors)+64(,%edx,4),%cx ! 839: jmp .L2060 ! 840: .L2058: ! 841: movb %ah,%dl ! 842: movw SYM(acolors)(,%edx,4),%cx ! 843: .L2060: ! 844: ! 845: movl %ecx,4(%ebp) ! 846: movl $0,SYM(spixstate)(%esi) ! 847: movl $0,SYM(spixels)(%esi) ! 848: addl $4,%esi ! 849: ! 850: addl $8,SYM(xlinebuffer) ! 851: .L2500: ! 852: cmpl %esi,SYM(diwlastword) ! 853: jg .L2492 ! 854: ! 855: /* Finish off the line */ ! 856: ! 857: .L2027: ! 858: movl 24(%esp),%edi ! 859: cmpl %edi,%esi ! 860: jnl .L2494 ! 861: movl SYM(acolors),%edx ! 862: movl SYM(xlinebuffer),%eax ! 863: .L2495: ! 864: incl %esi ! 865: movw %dx,(%eax) ! 866: addl $2,%eax ! 867: ! 868: cmpl %edi,%esi ! 869: jl .L2495 ! 870: movl %eax,SYM(xlinebuffer) ! 871: .L2494: ! 872: popl %ebp ! 873: popl %ebx ! 874: popl %esi ! 875: popl %edi ! 876: ret ! 877: .Lfe21: ! 878: ! 879: .ident "Crux CC 3.14.15"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.