home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-01-31 | 45.6 KB | 3,068 lines |
-
- ; Storm C Compiler
- ; TEMP:Mesa_2_5/src/logic.c
- mc68030
- mc68881
- XREF _gl_read_color_span
- XREF _gl_error
- XREF _gl_problem
- XREF _gl_read_alpha_pixels
- XREF _CC
-
- SECTION "_gl_LogicOp:0",CODE
-
-
- ;void gl_LogicOp( GLcontext *ctx, GLenum opcode )
- XDEF _gl_LogicOp
- _gl_LogicOp
- move.l $8(a7),d0
- move.l 4(a7),a0
- L319
- ; if (INSIDE_BEGIN_END(ctx))
- move.l a0,a1
- add.l #$E08A,a1
- move.l (a1),d1
- cmp.l #$1A00,d1
- beq.b L321
- L320
- ; gl_error( ctx, GL_INVALID_OPERATION, "glLogicOp" );
- move.l #L318,-(a7)
- pea $502.w
- move.l a0,-(a7)
- jsr _gl_error
- add.w #$C,a7
- rts
- L321
- ; switch (opcode)
- move.l d0,d1
- sub.l #$1500,d1
- cmp.l #$F,d1
- bhi.b L323
- move.l L324(pc,d1.l*4),a1
- jmp (a1)
- L324
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- dc.l L322
- ;
- L322
- ; ctx->Color.LogicOp = opcode;
- move.l d0,$1EBE(a0)
- ; int a = ctx->NewState | NEW_RASTER_OPS;
- move.l a0,a1
- add.l #$E082,a1
- move.l (a1),d0
- or.l #2,d0
- ; ctx->NewState = a;
- add.l #$E082,a0
- move.l d0,(a0)
- rts
- L323
- ; gl_error( ctx, GL_INVALID_ENUM, "glLogicOp" );
- move.l #L318,-(a7)
- pea $500.w
- move.l a0,-(a7)
- jsr _gl_error
- add.w #$C,a7
- rts
-
- L318
- dc.b 'glLogicOp',0
-
- SECTION "_gl_logicop_ci_span:0",CODE
-
- rts
-
- ;void gl_logicop_ci_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
- XDEF _gl_logicop_ci_span
- _gl_logicop_ci_span
- L420 EQU -$1904
- link a5,#L420
- movem.l d2/d3/a2,-(a7)
- movem.l $10(a5),d0/d1/a2
- move.l $C(a5),d2
- L326
- ; (*ctx->Driver.ReadIndexSpan)( ctx, n, x, y, dest );
- lea -$1900(a5),a0
- move.l a0,-(a7)
- move.l d1,-(a7)
- move.l d0,-(a7)
- move.l d2,-(a7)
- move.l $8(a5),-(a7)
- move.l $8(a5),a1
- lea $8A0(a1),a0
- move.l $44(a0),a0
- jsr (a0)
- add.w #$14,a7
- ; switch (ctx->Color.LogicOp)
- move.l $8(a5),a1
- lea $1E74(a1),a0
- move.l $4A(a0),d0
- sub.l #$1500,d0
- cmp.l #$F,d0
- bhi L418
- move.l L421(pc,d0.l*4),a0
- jmp (a0)
- L421
- dc.l L327
- dc.l L358
- dc.l L394
- dc.l L339
- dc.l L400
- dc.l L346
- dc.l L382
- dc.l L370
- dc.l L376
- dc.l L388
- dc.l L352
- dc.l L406
- dc.l L340
- dc.l L412
- dc.l L364
- dc.l L333
- ;
- L327
- ; for (i=0;
- moveq #0,d0
- bra.b L331
- L328
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L330
- L329
- ; index[i] = 0;
- lea 0(a2,d0.l*4),a0
- clr.l (a0)
- L330
- addq.l #1,d0
- L331
- cmp.l d2,d0
- blo.b L328
- L332
- ;
- bra L419
- L333
- ; for (i=0;
- moveq #0,d0
- bra.b L337
- L334
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L336
- L335
- ; index[i] = 1;
- lea 0(a2,d0.l*4),a0
- move.l #1,(a0)
- L336
- addq.l #1,d0
- L337
- cmp.l d2,d0
- blo.b L334
- L338
- ;
- bra L419
- L339
- ;
- bra L419
- L340
- ; for (i=0;
- moveq #0,d0
- bra.b L344
- L341
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L343
- L342
- ; index[i] = ~index[i];
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- not.l d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L343
- addq.l #1,d0
- L344
- cmp.l d2,d0
- blo.b L341
- L345
- ;
- bra L419
- L346
- ; for (i=0;
- moveq #0,d0
- bra.b L350
- L347
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L349
- L348
- ; index[i] = dest[i];
- lea -$1900(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L349
- addq.l #1,d0
- L350
- cmp.l d2,d0
- blo.b L347
- L351
- ;
- bra L419
- L352
- ; for (i=0;
- moveq #0,d0
- bra.b L356
- L353
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L355
- L354
- ; index[i] = ~dest[i];
- lea -$1900(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d1
- not.l d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L355
- addq.l #1,d0
- L356
- cmp.l d2,d0
- blo.b L353
- L357
- ;
- bra L419
- L358
- ; for (i=0;
- moveq #0,d0
- bra.b L362
- L359
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L361
- L360
- ; index[i] &= dest[i];
- lea -$1900(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- and.l d3,d1
- move.l d1,(a0)
- L361
- addq.l #1,d0
- L362
- cmp.l d2,d0
- blo.b L359
- L363
- ;
- bra L419
- L364
- ; for (i=0;
- moveq #0,d0
- bra.b L368
- L365
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L367
- L366
- ; index[i] = ~(index[i] & dest[i]);
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- lea -$1900(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- and.l d3,d1
- not.l d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L367
- addq.l #1,d0
- L368
- cmp.l d2,d0
- blo.b L365
- L369
- ;
- bra L419
- L370
- ; for (i=0;
- moveq #0,d0
- bra.b L374
- L371
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L373
- L372
- ; index[i] |= dest[i];
- lea -$1900(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- or.l d3,d1
- move.l d1,(a0)
- L373
- addq.l #1,d0
- L374
- cmp.l d2,d0
- blo.b L371
- L375
- ;
- bra L419
- L376
- ; for (i=0;
- moveq #0,d0
- bra.b L380
- L377
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L379
- L378
- ; index[i] = ~(index[i] | dest[i]);
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- lea -$1900(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- or.l d3,d1
- not.l d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L379
- addq.l #1,d0
- L380
- cmp.l d2,d0
- blo.b L377
- L381
- ;
- bra L419
- L382
- ; for (i=0;
- moveq #0,d0
- bra.b L386
- L383
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L385
- L384
- ; index[i] ^= dest[i];
- lea -$1900(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- eor.l d3,d1
- move.l d1,(a0)
- L385
- addq.l #1,d0
- L386
- cmp.l d2,d0
- blo.b L383
- L387
- ;
- bra L419
- L388
- ; for (i=0;
- moveq #0,d0
- bra.b L392
- L389
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L391
- L390
- ; index[i] = ~(index[i] ^ dest[i]);
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- lea -$1900(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- eor.l d3,d1
- not.l d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L391
- addq.l #1,d0
- L392
- cmp.l d2,d0
- blo.b L389
- L393
- ;
- bra L419
- L394
- ; for (i=0;
- moveq #0,d0
- bra.b L398
- L395
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L397
- L396
- ; index[i] = index[i] & ~dest[i];
- lea 0(a2,d0.l*4),a0
- move.l (a0),d3
- lea -$1900(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d1
- not.l d1
- and.l d1,d3
- lea 0(a2,d0.l*4),a0
- move.l d3,(a0)
- L397
- addq.l #1,d0
- L398
- cmp.l d2,d0
- blo.b L395
- L399
- ;
- bra L419
- L400
- ; for (i=0;
- moveq #0,d0
- bra.b L404
- L401
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L403
- L402
- ; index[i] = ~index[i] & dest[i];
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- not.l d1
- lea -$1900(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- and.l d3,d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L403
- addq.l #1,d0
- L404
- cmp.l d2,d0
- blo.b L401
- L405
- ;
- bra L419
- L406
- ; for (i=0;
- moveq #0,d0
- bra.b L410
- L407
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L409
- L408
- ; index[i] = index[i] | ~dest[i];
- lea 0(a2,d0.l*4),a0
- move.l (a0),d3
- lea -$1900(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d1
- not.l d1
- or.l d1,d3
- lea 0(a2,d0.l*4),a0
- move.l d3,(a0)
- L409
- addq.l #1,d0
- L410
- cmp.l d2,d0
- blo.b L407
- L411
- ;
- bra.b L419
- L412
- ; for (i=0;
- moveq #0,d0
- bra.b L416
- L413
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L415
- L414
- ; index[i] = ~index[i] | dest[i];
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- not.l d1
- lea -$1900(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- or.l d3,d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L415
- addq.l #1,d0
- L416
- cmp.l d2,d0
- blo.b L413
- L417
- ;
- bra.b L419
- L418
- ; gl_error( ctx, GL_INVALID_ENUM, "gl_logic error" );
- move.l #L325,-(a7)
- pea $500.w
- move.l $8(a5),-(a7)
- jsr _gl_error
- add.w #$C,a7
- L419
- movem.l (a7)+,d2/d3/a2
- unlk a5
- rts
-
- L325
- dc.b 'gl_logic error',0
-
- SECTION "_gl_logicop_ci_pixels:0",CODE
-
-
- ;void gl_logicop_ci_pixels( GLcontext *ctx,
- XDEF _gl_logicop_ci_pixels
- _gl_logicop_ci_pixels
- L517 EQU -$4B04
- link a5,#L517
- movem.l d2/d3/a2,-(a7)
- movem.l $C(a5),d2/a1
- move.l $18(a5),a2
- L423
- ; (*ctx->Driver.ReadIndexPixels)( ctx, n, x, y, dest, mask );
- move.l $1C(a5),-(a7)
- lea -$4B00(a5),a0
- move.l a0,-(a7)
- move.l $14(a5),-(a7)
- move.l a1,-(a7)
- move.l d2,-(a7)
- move.l $8(a5),-(a7)
- move.l $8(a5),a1
- lea $8A0(a1),a0
- move.l $4C(a0),a0
- jsr (a0)
- add.w #$18,a7
- ; switch (ctx->Color.LogicOp)
- move.l $8(a5),a1
- lea $1E74(a1),a0
- move.l $4A(a0),d0
- sub.l #$1500,d0
- cmp.l #$F,d0
- bhi L515
- move.l L518(pc,d0.l*4),a0
- jmp (a0)
- L518
- dc.l L424
- dc.l L455
- dc.l L491
- dc.l L436
- dc.l L497
- dc.l L443
- dc.l L479
- dc.l L467
- dc.l L473
- dc.l L485
- dc.l L449
- dc.l L503
- dc.l L437
- dc.l L509
- dc.l L461
- dc.l L430
- ;
- L424
- ; for (i=0;
- moveq #0,d0
- bra.b L428
- L425
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L427
- L426
- ; index[i] = 0;
- lea 0(a2,d0.l*4),a0
- clr.l (a0)
- L427
- addq.l #1,d0
- L428
- cmp.l d2,d0
- blo.b L425
- L429
- ;
- bra L516
- L430
- ; for (i=0;
- moveq #0,d0
- bra.b L434
- L431
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L433
- L432
- ; index[i] = 1;
- lea 0(a2,d0.l*4),a0
- move.l #1,(a0)
- L433
- addq.l #1,d0
- L434
- cmp.l d2,d0
- blo.b L431
- L435
- ;
- bra L516
- L436
- ;
- bra L516
- L437
- ; for (i=0;
- moveq #0,d0
- bra.b L441
- L438
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L440
- L439
- ; index[i] = ~index[i];
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- not.l d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L440
- addq.l #1,d0
- L441
- cmp.l d2,d0
- blo.b L438
- L442
- ;
- bra L516
- L443
- ; for (i=0;
- moveq #0,d0
- bra.b L447
- L444
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L446
- L445
- ; index[i] = dest[i];
- lea -$4B00(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L446
- addq.l #1,d0
- L447
- cmp.l d2,d0
- blo.b L444
- L448
- ;
- bra L516
- L449
- ; for (i=0;
- moveq #0,d0
- bra.b L453
- L450
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L452
- L451
- ; index[i] = ~dest[i];
- lea -$4B00(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d1
- not.l d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L452
- addq.l #1,d0
- L453
- cmp.l d2,d0
- blo.b L450
- L454
- ;
- bra L516
- L455
- ; for (i=0;
- moveq #0,d0
- bra.b L459
- L456
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L458
- L457
- ; index[i] &= dest[i];
- lea -$4B00(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- and.l d3,d1
- move.l d1,(a0)
- L458
- addq.l #1,d0
- L459
- cmp.l d2,d0
- blo.b L456
- L460
- ;
- bra L516
- L461
- ; for (i=0;
- moveq #0,d0
- bra.b L465
- L462
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L464
- L463
- ; index[i] = ~(index[i] & dest[i]);
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- lea -$4B00(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- and.l d3,d1
- not.l d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L464
- addq.l #1,d0
- L465
- cmp.l d2,d0
- blo.b L462
- L466
- ;
- bra L516
- L467
- ; for (i=0;
- moveq #0,d0
- bra.b L471
- L468
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L470
- L469
- ; index[i] |= dest[i];
- lea -$4B00(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- or.l d3,d1
- move.l d1,(a0)
- L470
- addq.l #1,d0
- L471
- cmp.l d2,d0
- blo.b L468
- L472
- ;
- bra L516
- L473
- ; for (i=0;
- moveq #0,d0
- bra.b L477
- L474
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L476
- L475
- ; index[i] = ~(index[i] | dest[i]);
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- lea -$4B00(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- or.l d3,d1
- not.l d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L476
- addq.l #1,d0
- L477
- cmp.l d2,d0
- blo.b L474
- L478
- ;
- bra L516
- L479
- ; for (i=0;
- moveq #0,d0
- bra.b L483
- L480
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L482
- L481
- ; index[i] ^= dest[i];
- lea -$4B00(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- eor.l d3,d1
- move.l d1,(a0)
- L482
- addq.l #1,d0
- L483
- cmp.l d2,d0
- blo.b L480
- L484
- ;
- bra L516
- L485
- ; for (i=0;
- moveq #0,d0
- bra.b L489
- L486
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L488
- L487
- ; index[i] = ~(index[i] ^ dest[i]);
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- lea -$4B00(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- eor.l d3,d1
- not.l d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L488
- addq.l #1,d0
- L489
- cmp.l d2,d0
- blo.b L486
- L490
- ;
- bra L516
- L491
- ; for (i=0;
- moveq #0,d0
- bra.b L495
- L492
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L494
- L493
- ; index[i] = index[i] & ~dest[i];
- lea 0(a2,d0.l*4),a0
- move.l (a0),d3
- lea -$4B00(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d1
- not.l d1
- and.l d1,d3
- lea 0(a2,d0.l*4),a0
- move.l d3,(a0)
- L494
- addq.l #1,d0
- L495
- cmp.l d2,d0
- blo.b L492
- L496
- ;
- bra L516
- L497
- ; for (i=0;
- moveq #0,d0
- bra.b L501
- L498
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L500
- L499
- ; index[i] = ~index[i] & dest[i];
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- not.l d1
- lea -$4B00(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- and.l d3,d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L500
- addq.l #1,d0
- L501
- cmp.l d2,d0
- blo.b L498
- L502
- ;
- bra L516
- L503
- ; for (i=0;
- moveq #0,d0
- bra.b L507
- L504
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L506
- L505
- ; index[i] = index[i] | ~dest[i];
- lea 0(a2,d0.l*4),a0
- move.l (a0),d3
- lea -$4B00(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d1
- not.l d1
- or.l d1,d3
- lea 0(a2,d0.l*4),a0
- move.l d3,(a0)
- L506
- addq.l #1,d0
- L507
- cmp.l d2,d0
- blo.b L504
- L508
- ;
- bra.b L516
- L509
- ; for (i=0;
- moveq #0,d0
- bra.b L513
- L510
- ; if (mask[i])
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L512
- L511
- ; index[i] = ~index[i] | dest[i];
- lea 0(a2,d0.l*4),a0
- move.l (a0),d1
- not.l d1
- lea -$4B00(a5),a0
- lea 0(a0,d0.l*4),a0
- move.l (a0),d3
- or.l d3,d1
- lea 0(a2,d0.l*4),a0
- move.l d1,(a0)
- L512
- addq.l #1,d0
- L513
- cmp.l d2,d0
- blo.b L510
- L514
- ;
- bra.b L516
- L515
- ; gl_error( ctx, GL_INVALID_ENUM, "gl_logic_pixels error" );
- move.l #L422,-(a7)
- pea $500.w
- move.l $8(a5),-(a7)
- jsr _gl_error
- add.w #$C,a7
- L516
- movem.l (a7)+,d2/d3/a2
- unlk a5
- rts
-
- L422
- dc.b 'gl_logic_pixels error',0
-
- SECTION "_gl_logicop_rgba_span:0",CODE
-
-
- ; blue[i] = ~(blue[i] |
- XDEF _gl_logicop_rgba_span
- _gl_logicop_rgba_span
- L614 EQU -$191A
- link a5,#L614
- movem.l d2-d5/a2,-(a7)
- movem.l $10(a5),d0/d1/a2
- move.l $C(a5),d2
- L520
- ; gl_read_color_span( ctx, n, x, y, rdest, gdest, bdest, adest );
- lea -$1900(a5),a0
- move.l a0,-(a7)
- lea -$12C0(a5),a0
- move.l a0,-(a7)
- lea -$C80(a5),a0
- move.l a0,-(a7)
- lea -$640(a5),a0
- move.l a0,-(a7)
- move.l d1,-(a7)
- move.l d0,-(a7)
- move.l d2,-(a7)
- move.l $8(a5),-(a7)
- jsr _gl_read_color_span
- add.w #$20,a7
- ; switch (ctx->Color.LogicOp)
- move.l $8(a5),a1
- lea $1E74(a1),a0
- move.l $4A(a0),d0
- sub.l #$1500,d0
- cmp.l #$F,d0
- bhi L612
- move.l L615(pc,d0.l*4),a0
- jmp (a0)
- L615
- dc.l L521
- dc.l L552
- dc.l L588
- dc.l L533
- dc.l L594
- dc.l L540
- dc.l L576
- dc.l L564
- dc.l L570
- dc.l L582
- dc.l L546
- dc.l L600
- dc.l L534
- dc.l L606
- dc.l L558
- dc.l L527
- ;
- L521
- ; for (i=0;
- moveq #0,d0
- bra.b L525
- L522
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L524
- L523
- ; red[i] = green[i] = blue[i] = alpha[i] = 0;
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- clr.b (a0)
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- clr.b (a0)
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- clr.b (a0)
- lea 0(a2,d0.l),a0
- clr.b (a0)
- L524
- addq.l #1,d0
- L525
- cmp.l d2,d0
- blo.b L522
- L526
- ;
- bra L613
- L527
- ; GLubyte r = (GLint) ctx->Visual->RedScale;
- move.l $8(a5),a1
- move.l $898(a1),a0
- fmove.s 2(a0),fp0
- fmove.l fp0,d0
- move.b d0,-$1905(a5)
- ; GLubyte g = (GLint) ctx->Visual->GreenScale;
- move.l $8(a5),a1
- move.l $898(a1),a0
- fmove.s 6(a0),fp0
- fmove.l fp0,d0
- move.b d0,d5
- ; GLubyte b = (GLint) ctx->Visual->BlueScale;
- move.l $8(a5),a1
- move.l $898(a1),a0
- fmove.s $A(a0),fp0
- fmove.l fp0,d0
- move.b d0,d4
- ; GLubyte a = (GLint) ctx->Visual->AlphaScale;
- move.l $8(a5),a1
- move.l $898(a1),a0
- fmove.s $E(a0),fp0
- fmove.l fp0,d0
- move.b d0,d3
- ; for (i=0;
- moveq #0,d0
- bra.b L531
- L528
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L530
- L529
- ; red[i] = r;
- lea 0(a2,d0.l),a0
- move.b -$1905(a5),(a0)
- ; green[i] = g;
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d5,(a0)
- ; blue[i] = b;
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d4,(a0)
- ; alpha[i] = a;
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d3,(a0)
- L530
- addq.l #1,d0
- L531
- cmp.l d2,d0
- blo.b L528
- L532
- ;
- bra L613
- L533
- ;
- bra L613
- L534
- ; for (i=0;
- moveq #0,d0
- bra.b L538
- L535
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L537
- L536
- ; red[i] = ~red[i];
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~green[i];
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~blue[i];
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~alpha[i];
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L537
- addq.l #1,d0
- L538
- cmp.l d2,d0
- blo.b L535
- L539
- ;
- bra L613
- L540
- ; for (i=0;
- moveq #0,d0
- bra.b L544
- L541
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L543
- L542
- ; red[i] = rdest[i];
- lea -$640(a5),a0
- add.l d0,a0
- move.b (a0),d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = gdest[i];
- lea -$C80(a5),a0
- add.l d0,a0
- move.b (a0),d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = bdest[i];
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = adest[i];
- lea -$1900(a5),a0
- add.l d0,a0
- move.b (a0),d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L543
- addq.l #1,d0
- L544
- cmp.l d2,d0
- blo.b L541
- L545
- ;
- bra L613
- L546
- ; for (i=0;
- moveq #0,d0
- bra.b L550
- L547
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L549
- L548
- ; red[i] = ~rdest[i];
- lea -$640(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~gdest[i];
- lea -$C80(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~bdest[i];
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~adest[i];
- lea -$1900(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L549
- addq.l #1,d0
- L550
- cmp.l d2,d0
- blo.b L547
- L551
- ;
- bra L613
- L552
- ; for (i=0;
- moveq #0,d0
- bra.b L556
- L553
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L555
- L554
- ; red[i] &= rdest[i];
- lea -$640(a5),a0
- add.l d0,a0
- move.b (a0),d3
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.b d3,d1
- move.b d1,(a0)
- ; green[i] &= gdest[i];
- lea -$C80(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.b d3,d1
- move.b d1,(a0)
- ; blue[i] &= bdest[i];
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.b d3,d1
- move.b d1,(a0)
- ; alpha[i] &= adest[i];
- lea -$1900(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.b d3,d1
- move.b d1,(a0)
- L555
- addq.l #1,d0
- L556
- cmp.l d2,d0
- blo.b L553
- L557
- ;
- bra L613
- L558
- ; for (i=0;
- moveq #0,d0
- bra L562
- L559
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L561
- L560
- ; red[i] = ~(red[i] & rdest[i]);
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$640(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- not.l d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~(green[i] & gdest[i]);
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$C80(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- not.l d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~(blue[i] & bdest[i]);
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- not.l d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~(alpha[i] & adest[i]);
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$1900(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- not.l d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L561
- addq.l #1,d0
- L562
- cmp.l d2,d0
- blo L559
- L563
- ;
- bra L613
- L564
- ; for (i=0;
- moveq #0,d0
- bra.b L568
- L565
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L567
- L566
- ; red[i] |= rdest[i];
- lea -$640(a5),a0
- add.l d0,a0
- move.b (a0),d3
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- or.b d3,d1
- move.b d1,(a0)
- ; green[i] |= gdest[i];
- lea -$C80(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- or.b d3,d1
- move.b d1,(a0)
- ; blue[i] |= bdest[i];
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- or.b d3,d1
- move.b d1,(a0)
- ; alpha[i] |= adest[i];
- lea -$1900(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- or.b d3,d1
- move.b d1,(a0)
- L567
- addq.l #1,d0
- L568
- cmp.l d2,d0
- blo.b L565
- L569
- ;
- bra L613
- L570
- ; for (i=0;
- moveq #0,d0
- bra L574
- L571
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L573
- L572
- ; red[i] = ~(red[i] | rdest[i]);
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$640(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- not.l d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~(green[i] | gdest[i]);
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$C80(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- not.l d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~(blue[i] | bdest[i]);
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- not.l d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~(alpha[i] | adest[i]);
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$1900(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- not.l d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L573
- addq.l #1,d0
- L574
- cmp.l d2,d0
- blo L571
- L575
- ;
- bra L613
- L576
- ; for (i=0;
- moveq #0,d0
- bra.b L580
- L577
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L579
- L578
- ; red[i] ^= rdest[i];
- lea -$640(a5),a0
- add.l d0,a0
- move.b (a0),d3
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- eor.b d3,d1
- move.b d1,(a0)
- ; green[i] ^= gdest[i];
- lea -$C80(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- eor.b d3,d1
- move.b d1,(a0)
- ; blue[i] ^= bdest[i];
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- eor.b d3,d1
- move.b d1,(a0)
- ; alpha[i] ^= adest[i];
- lea -$1900(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- eor.b d3,d1
- move.b d1,(a0)
- L579
- addq.l #1,d0
- L580
- cmp.l d2,d0
- blo.b L577
- L581
- ;
- bra L613
- L582
- ; for (i=0;
- moveq #0,d0
- bra L586
- L583
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L585
- L584
- ; red[i] = ~(red[i] ^ rdest[i]);
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$640(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- eor.l d3,d1
- not.l d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~(green[i] ^ gdest[i]);
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$C80(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- eor.l d3,d1
- not.l d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~(blue[i] ^ bdest[i]);
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- eor.l d3,d1
- not.l d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~(alpha[i] ^ adest[i]);
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$1900(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- eor.l d3,d1
- not.l d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L585
- addq.l #1,d0
- L586
- cmp.l d2,d0
- blo L583
- L587
- ;
- bra L613
- L588
- ; for (i=0;
- moveq #0,d0
- bra L592
- L589
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L591
- L590
- ; red[i] = red[i] & ~rdest[i];
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$640(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- and.l d1,d3
- move.b d3,d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = green[i] & ~gdest[i];
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$C80(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- and.l d1,d3
- move.b d3,d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = blue[i] & ~bdest[i];
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- and.l d1,d3
- move.b d3,d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = alpha[i] & ~adest[i];
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$1900(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- and.l d1,d3
- move.b d3,d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L591
- addq.l #1,d0
- L592
- cmp.l d2,d0
- blo L589
- L593
- ;
- bra L613
- L594
- ; for (i=0;
- moveq #0,d0
- bra L598
- L595
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L597
- L596
- ; red[i] = ~red[i] & rdest[i];
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$640(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~green[i] & gdest[i];
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$C80(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~blue[i] & bdest[i];
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~alpha[i] & adest[i];
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$1900(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L597
- addq.l #1,d0
- L598
- cmp.l d2,d0
- blo L595
- L599
- ;
- bra L613
- L600
- ; for (i=0;
- moveq #0,d0
- bra L604
- L601
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L603
- L602
- ; red[i] = red[i] | ~rdest[i];
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$640(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- or.l d1,d3
- move.b d3,d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = green[i] | ~gdest[i];
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$C80(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- or.l d1,d3
- move.b d3,d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = blue[i] | ~bdest[i];
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- or.l d1,d3
- move.b d3,d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = alpha[i] | ~adest[i];
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$1900(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- or.l d1,d3
- move.b d3,d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L603
- addq.l #1,d0
- L604
- cmp.l d2,d0
- blo L601
- L605
- ;
- bra L613
- L606
- ; for (i=0;
- moveq #0,d0
- bra L610
- L607
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L609
- L608
- ; red[i] = ~red[i] | rdest[i];
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$640(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~green[i] | gdest[i];
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$C80(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~blue[i] | bdest[i];
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~alpha[i] | adest[i];
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$1900(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L609
- addq.l #1,d0
- L610
- cmp.l d2,d0
- blo L607
- L611
- ;
- bra.b L613
- L612
- ; gl_problem(ctx, "Bad function in gl_logicop_rgba_span");
- move.l #L519,-(a7)
- move.l $8(a5),-(a7)
- jsr _gl_problem
- addq.w #$8,a7
- movem.l (a7)+,d2-d5/a2
- unlk a5
- rts
- L613
- ; return;
- movem.l (a7)+,d2-d5/a2
- unlk a5
- rts
-
- L519
- dc.b 'Bad function in gl_logicop_rgba_span',0
-
- SECTION "_gl_logicop_rgba_pixels:0",CODE
-
-
- ;void gl_logicop_rgba_pixels( GLcontext *ctx,
- XDEF _gl_logicop_rgba_pixels
- _gl_logicop_rgba_pixels
- L713 EQU -$4B20
- link a5,#L713
- movem.l d2-d5/a2,-(a7)
- move.l $C(a5),d2
- move.l $18(a5),a2
- L617
- ; (*ctx->Driver.ReadColorPixels)( ctx, n, x, y, rdest, gdest, bd
- move.l $28(a5),-(a7)
- lea -$4B00(a5),a0
- move.l a0,-(a7)
- lea -$3840(a5),a0
- move.l a0,-(a7)
- lea -$2580(a5),a0
- move.l a0,-(a7)
- lea -$12C0(a5),a0
- move.l a0,-(a7)
- move.l $14(a5),-(a7)
- move.l $10(a5),-(a7)
- move.l d2,-(a7)
- move.l $8(a5),-(a7)
- move.l $8(a5),a1
- lea $8A0(a1),a0
- move.l $50(a0),a0
- jsr (a0)
- add.w #$24,a7
- ; if (ctx->RasterMask & ALPHABUF_BIT)
- move.l $8(a5),a0
- add.l #$E096,a0
- move.l (a0),d0
- and.l #$100,d0
- beq.b L619
- L618
- ; gl_read_alpha_pixels( ctx, n, x, y, adest, mask );
- move.l $28(a5),-(a7)
- lea -$4B00(a5),a0
- move.l a0,-(a7)
- move.l $14(a5),-(a7)
- move.l $10(a5),-(a7)
- move.l d2,-(a7)
- move.l $8(a5),-(a7)
- jsr _gl_read_alpha_pixels
- add.w #$18,a7
- L619
- ; switch (ctx->Color.LogicOp)
- move.l $8(a5),a1
- lea $1E74(a1),a0
- move.l $4A(a0),d0
- sub.l #$1500,d0
- cmp.l #$F,d0
- bhi L711
- move.l L714(pc,d0.l*4),a0
- jmp (a0)
- L714
- dc.l L620
- dc.l L651
- dc.l L687
- dc.l L632
- dc.l L693
- dc.l L639
- dc.l L675
- dc.l L663
- dc.l L669
- dc.l L681
- dc.l L645
- dc.l L699
- dc.l L633
- dc.l L705
- dc.l L657
- dc.l L626
- ;
- L620
- ; for (i=0;
- moveq #0,d0
- bra.b L624
- L621
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L623
- L622
- ; red[i] = green[i] = blue[i] = alpha[i] = 0;
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- clr.b (a0)
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- clr.b (a0)
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- clr.b (a0)
- lea 0(a2,d0.l),a0
- clr.b (a0)
- L623
- addq.l #1,d0
- L624
- cmp.l d2,d0
- blo.b L621
- L625
- ;
- bra L712
- L626
- ; GLubyte r = (GLint) ctx->Visual->RedScale;
- move.l $8(a5),a1
- move.l $898(a1),a0
- fmove.s 2(a0),fp0
- fmove.l fp0,d0
- move.b d0,-$4B05(a5)
- ; GLubyte g = (GLint) ctx->Visual->GreenScale;
- move.l $8(a5),a1
- move.l $898(a1),a0
- fmove.s 6(a0),fp0
- fmove.l fp0,d0
- move.b d0,d5
- ; GLubyte b = (GLint) ctx->Visual->BlueScale;
- move.l $8(a5),a1
- move.l $898(a1),a0
- fmove.s $A(a0),fp0
- fmove.l fp0,d0
- move.b d0,d4
- ; GLubyte a = (GLint) ctx->Visual->AlphaScale;
- move.l $8(a5),a1
- move.l $898(a1),a0
- fmove.s $E(a0),fp0
- fmove.l fp0,d0
- move.b d0,d3
- ; for (i=0;
- moveq #0,d0
- bra.b L630
- L627
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L629
- L628
- ; red[i] = r;
- lea 0(a2,d0.l),a0
- move.b -$4B05(a5),(a0)
- ; green[i] = g;
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d5,(a0)
- ; blue[i] = b;
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d4,(a0)
- ; alpha[i] = a;
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d3,(a0)
- L629
- addq.l #1,d0
- L630
- cmp.l d2,d0
- blo.b L627
- L631
- ;
- bra L712
- L632
- ;
- bra L712
- L633
- ; for (i=0;
- moveq #0,d0
- bra.b L637
- L634
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L636
- L635
- ; red[i] = ~red[i];
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~green[i];
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~blue[i];
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~alpha[i];
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L636
- addq.l #1,d0
- L637
- cmp.l d2,d0
- blo.b L634
- L638
- ;
- bra L712
- L639
- ; for (i=0;
- moveq #0,d0
- bra.b L643
- L640
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L642
- L641
- ; red[i] = rdest[i];
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = gdest[i];
- lea -$2580(a5),a0
- add.l d0,a0
- move.b (a0),d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = bdest[i];
- lea -$3840(a5),a0
- add.l d0,a0
- move.b (a0),d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = adest[i];
- lea -$4B00(a5),a0
- add.l d0,a0
- move.b (a0),d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L642
- addq.l #1,d0
- L643
- cmp.l d2,d0
- blo.b L640
- L644
- ;
- bra L712
- L645
- ; for (i=0;
- moveq #0,d0
- bra.b L649
- L646
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L648
- L647
- ; red[i] = ~rdest[i];
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~gdest[i];
- lea -$2580(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~bdest[i];
- lea -$3840(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~adest[i];
- lea -$4B00(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L648
- addq.l #1,d0
- L649
- cmp.l d2,d0
- blo.b L646
- L650
- ;
- bra L712
- L651
- ; for (i=0;
- moveq #0,d0
- bra.b L655
- L652
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L654
- L653
- ; red[i] &= rdest[i];
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.b d3,d1
- move.b d1,(a0)
- ; green[i] &= gdest[i];
- lea -$2580(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.b d3,d1
- move.b d1,(a0)
- ; blue[i] &= bdest[i];
- lea -$3840(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.b d3,d1
- move.b d1,(a0)
- ; alpha[i] &= adest[i];
- lea -$4B00(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.b d3,d1
- move.b d1,(a0)
- L654
- addq.l #1,d0
- L655
- cmp.l d2,d0
- blo.b L652
- L656
- ;
- bra L712
- L657
- ; for (i=0;
- moveq #0,d0
- bra L661
- L658
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L660
- L659
- ; red[i] = ~(red[i] & rdest[i]);
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- not.l d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~(green[i] & gdest[i]);
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$2580(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- not.l d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~(blue[i] & bdest[i]);
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$3840(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- not.l d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~(alpha[i] & adest[i]);
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$4B00(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- not.l d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L660
- addq.l #1,d0
- L661
- cmp.l d2,d0
- blo L658
- L662
- ;
- bra L712
- L663
- ; for (i=0;
- moveq #0,d0
- bra.b L667
- L664
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L666
- L665
- ; red[i] |= rdest[i];
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- or.b d3,d1
- move.b d1,(a0)
- ; green[i] |= gdest[i];
- lea -$2580(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- or.b d3,d1
- move.b d1,(a0)
- ; blue[i] |= bdest[i];
- lea -$3840(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- or.b d3,d1
- move.b d1,(a0)
- ; alpha[i] |= adest[i];
- lea -$4B00(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- or.b d3,d1
- move.b d1,(a0)
- L666
- addq.l #1,d0
- L667
- cmp.l d2,d0
- blo.b L664
- L668
- ;
- bra L712
- L669
- ; for (i=0;
- moveq #0,d0
- bra L673
- L670
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L672
- L671
- ; red[i] = ~(red[i] | rdest[i]);
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- not.l d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~(green[i] | gdest[i]);
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$2580(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- not.l d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~(blue[i] | bdest[i]);
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$3840(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- not.l d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~(alpha[i] | adest[i]);
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$4B00(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- not.l d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L672
- addq.l #1,d0
- L673
- cmp.l d2,d0
- blo L670
- L674
- ;
- bra L712
- L675
- ; for (i=0;
- moveq #0,d0
- bra.b L679
- L676
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq.b L678
- L677
- ; red[i] ^= rdest[i];
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- eor.b d3,d1
- move.b d1,(a0)
- ; green[i] ^= gdest[i];
- lea -$2580(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- eor.b d3,d1
- move.b d1,(a0)
- ; blue[i] ^= bdest[i];
- lea -$3840(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- eor.b d3,d1
- move.b d1,(a0)
- ; alpha[i] ^= adest[i];
- lea -$4B00(a5),a0
- add.l d0,a0
- move.b (a0),d3
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- eor.b d3,d1
- move.b d1,(a0)
- L678
- addq.l #1,d0
- L679
- cmp.l d2,d0
- blo.b L676
- L680
- ;
- bra L712
- L681
- ; for (i=0;
- moveq #0,d0
- bra L685
- L682
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L684
- L683
- ; red[i] = ~(red[i] ^ rdest[i]);
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- eor.l d3,d1
- not.l d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~(green[i] ^ gdest[i]);
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$2580(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- eor.l d3,d1
- not.l d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~(blue[i] ^ bdest[i]);
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$3840(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- eor.l d3,d1
- not.l d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~(alpha[i] ^ adest[i]);
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- lea -$4B00(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- eor.l d3,d1
- not.l d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L684
- addq.l #1,d0
- L685
- cmp.l d2,d0
- blo L682
- L686
- ;
- bra L712
- L687
- ; for (i=0;
- moveq #0,d0
- bra L691
- L688
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L690
- L689
- ; red[i] = red[i] & ~rdest[i];
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- and.l d1,d3
- move.b d3,d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = green[i] & ~gdest[i];
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$2580(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- and.l d1,d3
- move.b d3,d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = blue[i] & ~bdest[i];
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$3840(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- and.l d1,d3
- move.b d3,d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = alpha[i] & ~adest[i];
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$4B00(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- and.l d1,d3
- move.b d3,d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L690
- addq.l #1,d0
- L691
- cmp.l d2,d0
- blo L688
- L692
- ;
- bra L712
- L693
- ; for (i=0;
- moveq #0,d0
- bra L697
- L694
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L696
- L695
- ; red[i] = ~red[i] & rdest[i];
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~green[i] & gdest[i];
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$2580(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~blue[i] & bdest[i];
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$3840(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~alpha[i] & adest[i];
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$4B00(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- and.l d3,d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L696
- addq.l #1,d0
- L697
- cmp.l d2,d0
- blo L694
- L698
- ;
- bra L712
- L699
- ; for (i=0;
- moveq #0,d0
- bra L703
- L700
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L702
- L701
- ; red[i] = red[i] | ~rdest[i];
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- or.l d1,d3
- move.b d3,d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = green[i] | ~gdest[i];
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$2580(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- or.l d1,d3
- move.b d3,d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = blue[i] | ~bdest[i];
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$3840(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- or.l d1,d3
- move.b d3,d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = alpha[i] | ~adest[i];
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- moveq #0,d3
- move.b d1,d3
- lea -$4B00(a5),a0
- add.l d0,a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- or.l d1,d3
- move.b d3,d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L702
- addq.l #1,d0
- L703
- cmp.l d2,d0
- blo L700
- L704
- ;
- bra L712
- L705
- ; for (i=0;
- moveq #0,d0
- bra L709
- L706
- ; if (mask[i])
- move.l $28(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- beq L708
- L707
- ; red[i] = ~red[i] | rdest[i];
- lea 0(a2,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$12C0(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- lea 0(a2,d0.l),a0
- move.b d1,(a0)
- ; green[i] = ~green[i] | gdest[i];
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$2580(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- move.l $1C(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; blue[i] = ~blue[i] | bdest[i];
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$3840(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- move.l $20(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- ; alpha[i] = ~alpha[i] | adest[i];
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b (a0),d1
- and.l #$FF,d1
- not.l d1
- lea -$4B00(a5),a0
- add.l d0,a0
- move.b (a0),d3
- and.l #$FF,d3
- or.l d3,d1
- move.l $24(a5),a1
- lea 0(a1,d0.l),a0
- move.b d1,(a0)
- L708
- addq.l #1,d0
- L709
- cmp.l d2,d0
- blo L706
- L710
- ;
- bra.b L712
- L711
- ; gl_problem(ctx, "Bad function in gl_logicop_rgba_pixels");
- move.l #L616,-(a7)
- move.l $8(a5),-(a7)
- jsr _gl_problem
- addq.w #$8,a7
- movem.l (a7)+,d2-d5/a2
- unlk a5
- rts
- L712
- ; return;
- movem.l (a7)+,d2-d5/a2
- unlk a5
- rts
-
- L616
- dc.b 'Bad function in gl_logicop_rgba_pixels',0
-
- END
-