|
| 1 | +* SOURCE CODE TO REMOVE BOTTOM BORDER, BY POWER MAN OF THE WILD BOYS * |
| 2 | + |
| 3 | +* INTO SUPERVISOR MODE |
| 4 | + |
| 5 | + CLR.L -(A7) |
| 6 | + MOVE.W #32,-(A7) |
| 7 | + TRAP #1 |
| 8 | + ADDQ.L #6,A7 |
| 9 | + MOVE.L D0,STACK |
| 10 | + MOVE.L #MY,A7 |
| 11 | + |
| 12 | +* SAVE VECTORS AND OTHER SHIT |
| 13 | + |
| 14 | + LEA STORAGE,A0 |
| 15 | + MOVE.L $70.W,(A0)+ |
| 16 | + MOVE.L $120.W,(A0)+ |
| 17 | + MOVE.B $FFFFFA1B.W,(A0)+ |
| 18 | + MOVE.B $FFFFFA21.W,(A0)+ |
| 19 | + MOVE.B $FFFFFA07.W,(A0)+ |
| 20 | + MOVE.B $FFFFFA09.W,(A0)+ |
| 21 | + MOVE.B $FFFFFA13.W,(A0)+ |
| 22 | + ADDQ.L #1,A0 MAKE ADDRESS EVEN |
| 23 | + MOVE.W $FFFF8240.W,(A0)+ |
| 24 | + MOVE.W $FFFF8242.W,(A0)+ |
| 25 | + |
| 26 | + MOVE.W #2,-(A7) |
| 27 | + TRAP #14 |
| 28 | + ADDQ.L #2,A7 |
| 29 | + MOVE.L D0,PHYSIC |
| 30 | + |
| 31 | + MOVE.W #3,-(A7) |
| 32 | + TRAP #14 |
| 33 | + ADDQ.L #2,A7 |
| 34 | + MOVE.L D0,LOGIC |
| 35 | + |
| 36 | + MOVE.W #4,-(A7) |
| 37 | + TRAP #14 |
| 38 | + ADDQ.L #2,A7 |
| 39 | + MOVE.W D0,RES |
| 40 | + |
| 41 | +* HIDE MOUSE |
| 42 | + |
| 43 | + DC.W $A000 |
| 44 | + DC.W $A00A |
| 45 | + |
| 46 | +* SET SCREEN ADDRESS, LOW RES |
| 47 | + |
| 48 | + CLR.W -(A7) LOW RES |
| 49 | + PEA $70000 PHYSICAL SCREEN ADDRESS |
| 50 | + PEA $70000 LOGICAL SCREEN ADDRESS |
| 51 | + MOVE.W #5,-(A7) |
| 52 | + TRAP #14 |
| 53 | + LEA 12(A7),A7 |
| 54 | + |
| 55 | +* FILL SCREEN WITH COLOUR 1 (VERTICAL LINE PATTERN) |
| 56 | + |
| 57 | + LEA $70000,A0 |
| 58 | + MOVE.W #64000/8-1,D0 TWO SCREENS LENGTH |
| 59 | +FILL MOVE.L #$F0F00000,(A0)+ |
| 60 | + MOVE.L #0,(A0)+ |
| 61 | + DBF D0,FILL |
| 62 | + CLR.W $FFFF8240.W |
| 63 | + MOVE.W #$777,$FFFF8242.W |
| 64 | + |
| 65 | +* SET UP NEW VECTORS |
| 66 | + |
| 67 | + MOVE.W #$2700,SR STOP INTERRUPTS |
| 68 | + MOVE.L #VBL,$70.W NEW VBL VECTOR |
| 69 | + MOVE.L #TIMER_B,$120.W NEW TIMER B INTERRUPT HANDLER |
| 70 | + CLR.B $FFFFFA07.W MFP RESET |
| 71 | + CLR.B $FFFFFA09.W |
| 72 | + ORI.B #1,$FFFFFA07.W ENABLE TIMER B |
| 73 | + ORI.B #1,$FFFFFA13.W |
| 74 | + CLR.B $FFFFFA1B.W STOP TIMER B |
| 75 | + MOVE.W #$2300,SR ENABLE INTERRUPTS |
| 76 | +WAIT CMPI.B #57,$FFFFFC02.W SPACE BAR? |
| 77 | + BNE WAIT |
| 78 | + |
| 79 | +* RESTORE VECTORS AND SHIT |
| 80 | + |
| 81 | + MOVE.W #$2700,SR |
| 82 | + LEA STORAGE,A0 |
| 83 | + MOVE.L (A0)+,$70.W |
| 84 | + MOVE.L (A0)+,$120.W |
| 85 | + MOVE.B (A0)+,$FFFFFA1B.W |
| 86 | + MOVE.B (A0)+,$FFFFFA21.W |
| 87 | + MOVE.B (A0)+,$FFFFFA07.W |
| 88 | + MOVE.B (A0)+,$FFFFFA09.W |
| 89 | + MOVE.B (A0)+,$FFFFFA13.W |
| 90 | + ADDQ.L #1,A0 |
| 91 | + MOVE.W (A0)+,$FFFF8240.W |
| 92 | + MOVE.W (A0)+,$FFFF8242.W |
| 93 | + |
| 94 | +* SHOW MOUSE |
| 95 | + |
| 96 | + DC.W $A000 |
| 97 | + DC.W $A009 |
| 98 | + MOVE.W #$2300,SR |
| 99 | + |
| 100 | +* SET SCREEN ADDRESS, INTO USER MODE AND EXIT |
| 101 | + |
| 102 | + MOVE.W RES,-(A7) |
| 103 | + MOVE.L PHYSIC,-(A7) |
| 104 | + MOVE.L LOGIC,-(A7) |
| 105 | + MOVE.W #5,-(A7) |
| 106 | + TRAP #14 |
| 107 | + LEA 12(A7),A7 |
| 108 | + |
| 109 | + MOVE.L STACK,-(A7) |
| 110 | + MOVE.W #32,-(A7) |
| 111 | + TRAP #1 |
| 112 | + ADDQ.L #6,A7 |
| 113 | + CLR.L -(A7) |
| 114 | + TRAP #1 |
| 115 | + |
| 116 | +* VBL INTERRUPT HANDLER |
| 117 | + |
| 118 | +VBL CLR.B $FFFFFA1B.W STOP TIMER B |
| 119 | + MOVE.B #199,$FFFFFA21 OCCUR ON LAST SCANLINE |
| 120 | + MOVE.B #8,$FFFFFA1B.W START TIMER B |
| 121 | + RTE PISS OFF |
| 122 | + |
| 123 | +TIMER_B CLR.B $FFFFFA1B.W STOP TIMER |
| 124 | + MOVEM.L D0/A0,-(A7) |
| 125 | + MOVEA.W #$FA21,A0 |
| 126 | + MOVE.B #200,(A0) |
| 127 | + MOVE.B #8,$FFFFFA1B.W START TIMER |
| 128 | + MOVE.B (A0),D0 |
| 129 | +WAIT2 CMP.B (A0),D0 |
| 130 | + BEQ WAIT2 |
| 131 | + CLR.B $FFFF820A.W INTO 60 HZ |
| 132 | + MOVEQ.L #2,D0 |
| 133 | +LOOP1 NOP |
| 134 | + DBF D0,LOOP1 |
| 135 | + MOVE.B #2,$FFFF820A.W INTO 50 HZ |
| 136 | + MOVEM.L (A7)+,D0/A0 |
| 137 | + BCLR #0,$FFFFFA0F.W ACKNOWLEDGE |
| 138 | + RTE BUGGER OFF |
| 139 | + |
| 140 | +STORAGE DS.B 18 |
| 141 | + DS.L 63 |
| 142 | +MY DS.L 1 |
| 143 | +RES DS.W 1 |
| 144 | +LOGIC DS.L 1 |
| 145 | +PHYSIC DS.L 1 |
| 146 | +STACK DS.L 1 |
| 147 | + |
0 commit comments