|
|
1.1 ! root 1: .text ! 2: .globl _addpoint ! 3: .align 2 ! 4: _addpoint:link a6,#-8 ! 5: moveml #0x10,a6@(-8) ! 6: movl a1,a6@(-4) ! 7: movl a6@(8),d4 ! 8: addl a6@(16),d4 ! 9: movl d4,a6@(8) ! 10: movl a6@(12),d4 ! 11: addl a6@(20),d4 ! 12: movl d4,a6@(12) ! 13: lea a6@(8),a0 ! 14: movl a6@(-4),a1 ! 15: movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 16: L1: ! 17: moveml a6@(-8),#0x10 ! 18: unlk a6 ! 19: rts ! 20: .globl _canonrect ! 21: .align 2 ! 22: _canonrect:link a6,#-32 ! 23: moveml #0xd0,a6@(-32) ! 24: movl a1,a6@(-4) ! 25: movl a6@(8),d4 ! 26: cmpl a6@(16),d4; jge L10 ! 27: movl a6@(8),d7 ! 28: jra L11 ! 29: L10: ! 30: movl a6@(16),d7 ! 31: L11: ! 32: movl d7,a6@(-20) ! 33: movl a6@(12),d4 ! 34: cmpl a6@(20),d4; jge L20 ! 35: movl a6@(12),d6 ! 36: jra L21 ! 37: L20: ! 38: movl a6@(20),d6 ! 39: L21: ! 40: movl d6,a6@(-16) ! 41: movl a6@(8),d4 ! 42: cmpl a6@(16),d4; jle L26 ! 43: movl a6@(8),d7 ! 44: jra L27 ! 45: L26: ! 46: movl a6@(16),d7 ! 47: L27: ! 48: movl d7,a6@(-12) ! 49: movl a6@(12),d4 ! 50: cmpl a6@(20),d4; jle L37 ! 51: movl a6@(12),d1 ! 52: jra L38 ! 53: L37: ! 54: movl a6@(20),d1 ! 55: L38: ! 56: movl d1,a6@(-8) ! 57: lea a6@(-20),a0 ! 58: movl a6@(-4),a1 ! 59: movl #16/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 60: L5: ! 61: moveml a6@(-32),#0xd0 ! 62: unlk a6 ! 63: rts ! 64: .globl _makepoint ! 65: .align 2 ! 66: _makepoint:link a6,#-12 ! 67: movl a1,a6@(-4) ! 68: movl a6@(8),a6@(-12) ! 69: movl a6@(12),a6@(-8) ! 70: lea a6@(-12),a0 ! 71: movl a6@(-4),a1 ! 72: movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 73: L39: ! 74: unlk a6 ! 75: rts ! 76: .globl _makerect ! 77: .align 2 ! 78: _makerect:link a6,#-36 ! 79: movl a1,a6@(-4) ! 80: lea a6@(8),a0 ! 81: lea a6@(-20),a1 ! 82: movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 83: lea a6@(16),a0 ! 84: lea a6@(-12),a1 ! 85: movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 86: lea a6@(-20),a0 ! 87: lea sp@(0),a1; movl #16/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 88: movl a6@(-4),a1 ! 89: jbsr _canonrect:l ! 90: L42: ! 91: unlk a6 ! 92: rts ! 93: .globl _ptinrect ! 94: .align 2 ! 95: _ptinrect:link a6,#-4 ! 96: moveml #0x10,a6@(-4) ! 97: movl a6@(8),d4 ! 98: cmpl a6@(16),d4; jlt L54 ! 99: cmpl a6@(24),d4; jge L54 ! 100: movl a6@(12),d4 ! 101: cmpl a6@(20),d4; jlt L54 ! 102: movl a6@(12),d4 ! 103: cmpl a6@(28),d4; jge L54 ! 104: movl #1,d1 ! 105: jra L55 ! 106: L54: ! 107: clrl d1 ! 108: L55: ! 109: movl d1,d0 ! 110: L46: ! 111: moveml a6@(-4),#0x10 ! 112: unlk a6 ! 113: rts ! 114: .text ! 115: .align 2; L57:.long 0 ! 116: .long 0 ! 117: .align 2; L58:.long 320 ! 118: .long 320 ! 119: .align 2; L59:.long -1 ! 120: .long -1 ! 121: .long 1 ! 122: .long 1 ! 123: .long 20 ! 124: .long 300 ! 125: .long 500 ! 126: .long 400 ! 127: .text ! 128: .globl _main ! 129: .align 2 ! 130: _main:link a6,#-136 ! 131: moveml #0x90,a6@(-112) ! 132: lea L57:l,a0 ! 133: lea a6@(-64),a1 ! 134: movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 135: lea L58:l,a0 ! 136: lea a6@(-72),a1 ! 137: movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 138: lea L59:l,a0 ! 139: lea a6@(-32),a1 ! 140: movl #32/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 141: movl #-10,sp@ ! 142: movl #-10,sp@(4) ! 143: lea a6@(-80),a1 ! 144: jbsr _makepoint:l ! 145: lea a6@(-72),a0 ! 146: lea sp@(0),a1; movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 147: lea a6@(-80),a0 ! 148: lea sp@(8),a1; movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 149: lea a6@(-88),a1 ! 150: jbsr _addpoint:l ! 151: movl #10,sp@ ! 152: movl #10,sp@(4) ! 153: lea a6@(-96),a1 ! 154: jbsr _makepoint:l ! 155: lea a6@(-64),a0 ! 156: lea sp@(0),a1; movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 157: lea a6@(-96),a0 ! 158: lea sp@(8),a1; movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 159: lea a6@(-104),a1 ! 160: jbsr _addpoint:l ! 161: lea a6@(-88),a0 ! 162: lea sp@(0),a1; movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 163: lea a6@(-104),a0 ! 164: lea sp@(8),a1; movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 165: lea a6@(-48),a1 ! 166: jbsr _makerect:l ! 167: clrl d7 ! 168: jra L68 ! 169: L65: ! 170: movl d7,d4; asll #3,d4 ! 171: movl a6@(-32,d4:l:1),sp@ ! 172: movl a6@(-28,d4:l:1),sp@(4) ! 173: lea a6@(-56),a1 ! 174: jbsr _makepoint:l ! 175: movl #L69,sp@ ! 176: movl d7,d4; asll #3,d4 ! 177: movl a6@(-32,d4:l:1),sp@(4) ! 178: movl a6@(-52),sp@(8) ! 179: jbsr _printf:l ! 180: lea a6@(-56),a0 ! 181: lea sp@(0),a1; movl #8/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 182: lea a6@(-48),a0 ! 183: lea sp@(8),a1; movl #16/2,d0; 2:movw a0@+,a1@+; subql #1,d0; jgt 2b ! 184: jbsr _ptinrect:l ! 185: tstl d0; jne L73 ! 186: movl #L75,sp@ ! 187: jbsr _printf:l ! 188: L73: ! 189: movl #L76,sp@ ! 190: movl a6@(-48),sp@(4) ! 191: movl a6@(-44),sp@(8) ! 192: movl a6@(-40),sp@(12) ! 193: movl a6@(-36),sp@(16) ! 194: jbsr _printf:l ! 195: L66: ! 196: addql #1,d7 ! 197: L68: ! 198: cmpl #4,d7; jcs L65 ! 199: movl #0,sp@ ! 200: jbsr _exit:l ! 201: L56: ! 202: moveml a6@(-112),#0x90 ! 203: unlk a6 ! 204: rts ! 205: .text ! 206: .align 2; L76:.ascii "within [%d,%d; %d,%d]\012\000" ! 207: .align 2; L75:.ascii "not \000" ! 208: .align 2; L69:.ascii "(%d,%d) is \000"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.