@@ -292,10 +292,18 @@ rsnoop SET 0
292292rsnoop SET 1
293293 endc
294294
295- ;fixcol macro
296- ; MOVE.W #\1,$DFF180
297- ; JSR debugDelay
298- ; endm
295+ fixcol macro
296+ MOVE.L D0,-(A7)
297+ MOVE.W #25,D0
298+ .dloop
299+ MOVE.B #0,ciaatodlo
300+ .dloop2:
301+ MOVE.W #\1,$DFF180
302+ CMP.B #2,ciaatodlo
303+ BNE.S .dloop2
304+ DBF D0,.dloop
305+ MOVE.L (A7)+,D0
306+ endm
299307
300308;fixcol macro
301309; endm
@@ -705,7 +713,7 @@ DisplayArInstalLogo:
705713 MOVE.W #$7fff,intena+hardware
706714 MOVE.L A7,A6
707715 LEA StackEnd,A7
708- LEA EXT_0 ,A0
716+ LEA EXT_1000 ,A0
709717 LEA ChipramSave1,A1
710718 MOVE.L A0,A2
711719 MOVE.W #$1f40-1,D0
@@ -930,7 +938,7 @@ NMI_Entry:
930938 MOVE.B EXT_F8000D,kickstartVersion
931939.k3
932940 endc
933-
941+
934942 if arhardware=1
935943 BTST #1,FreezeState
936944 BNE reset
@@ -942,34 +950,47 @@ NMI_Entry:
942950 if (arhardware+pistorm=1)
943951 tst.b exceptionsActive
944952 beq.s nmi1
945- CMPI.L #$124,2(A7)
953+
954+ CMPI.L #$128,2(A7)
946955 BGT.W nmi1
947956 CMPI.L #$100,2(A7)
948957 BLS.W nmi1
949958 jmp ExceptionEntry
950959nmi1:
951960 tst.b breakpointsActive
952961 beq.s nmi2
962+ CMPI.L #$40,2(A7)
963+ BEQ.S .isbp
953964 CMPI.L #$46,2(A7)
954965 bne.s nmi2
966+ .isbp
955967 jmp ExceptionEntry2
956968
957969nmi2:
958970 tst.b MemwatchActive
959971 beq.s nmi3
972+ cmp.l #$130,2(a7)
973+ beq.s .ismw
960974 cmp.l #$136,2(a7)
961975 bne.s nmi3
976+ .ismw
962977 jmp ExceptionEntry2
963978nmi3:
964979 tst.b apiActive
965980 beq.s nmi4
981+ cmp.l #$100,2(a7)
982+ BEQ.S .isapi
966983 cmp.l #$106,2(a7)
967984 bne.s nmi4
985+ .isapi
968986 jmp ApiEntry
969987
970988nmi4:
989+ cmp.l #$150,2(a7)
990+ BEQ.S .istr
971991 cmp.l #$156,2(a7)
972992 bne.s x
993+ .istr
973994 MOVE.L A0,D0
974995 JSR getVBR
975996 MOVE.L D0,A0
@@ -2020,7 +2041,7 @@ AREntry2:
20202041 MOVE.W 0(A7),SaveOldSr
20212042 MOVE #$2000,SR
20222043 LEA StackEnd,A7
2023-
2044+
20242045 CMP.B #34,kickstartVersion
20252046 BLS.S .1
20262047
@@ -2035,8 +2056,15 @@ AREntry2:
20352056 JSR getCACR
20362057 MOVE.L D0,SAVE_CACR
20372058 MOVEQ #0,D0
2059+
2060+ SF.B tempD1
20382061 JSR setCACR
20392062
2063+ TST.B tempD1
2064+ BNE.S .2
2065+ MOVE.W #8,cpuAddrSize
2066+ .2
2067+
20402068 MOVE.L vposr+hardware,D0
20412069 MOVE.L D0,SAVE_VPOS
20422070 AND.L #$7fffffff,D0
@@ -2158,6 +2186,7 @@ LAB_A10A88:
21582186 MOVE D0,SR
21592187
21602188 MOVE.L SAVE_CACR,D0
2189+ OR.W #$808,D0 ;clear data and instruction cache
21612190 JSR setCACR
21622191
21632192 MOVE.L Int5Save,AUTO_INT5.W
@@ -2229,7 +2258,7 @@ LAB_A10BF4:
22292258.noret
22302259 endc
22312260 RTE
2232-
2261+
22332262getVBR:
22342263 MOVE.L ILLEG_OPC.W,-(A7)
22352264 MOVE.L #vbrtrap,ILLEG_OPC.W
@@ -2248,7 +2277,11 @@ getVBR:
22482277 RTS
22492278vbrtrap:
22502279 MOVE.W #0,vbrflag
2280+ ADD.L #4,2(a7)
2281+ RTE
2282+
22512283cacrtrap:
2284+ ST.B tempD1
22522285 ADD.L #4,2(a7)
22532286 RTE
22542287
@@ -8941,6 +8974,9 @@ LAB_A1323A:
89418974 CMPI.W #7,D2
89428975 BNE.S LAB_A13244
89438976 ADDQ.L #6,D0
8977+ TST.W vbrflag
8978+ BEQ.S LAB_A13244
8979+ ADDQ.L #2,D0
89448980LAB_A13244:
89458981 JSR Print8DigitHex
89468982 JSR PrintSpace
@@ -9953,8 +9989,11 @@ LAB_A13C0E:
99539989 BEQ.S LAB_A13C1E
99549990 JSR FindVirus
99559991LAB_A13C1E:
9992+ CMPI.L #$00000040,SaveOldPc
9993+ BEQ.S .isbp
99569994 CMPI.L #$00000046,SaveOldPc
99579995 BNE.S LAB_A13C7C
9996+ .isbp
99589997 LEA SaveCpuRegs,A0
99599998 MOVEA.L $3C(A0),A1 ;get old A7
99609999 MOVE.L (A1),-(A7)
@@ -9985,8 +10024,11 @@ LAB_A13C1E:
998510024 BSR.W PrintCrIfNotBlankLine
998610025 SF restartFlag
998710026LAB_A13C7C:
10027+ CMPI.L #$00000130,SaveOldPc
10028+ BEQ.S .ismw
998810029 CMPI.L #$00000136,SaveOldPc
998910030 BNE LAB_A13D02
10031+ .ismw
999010032 LEA SaveCpuRegs,A0
999110033 MOVEA.L $3C(A0),A1
999210034 MOVE.L (A1),-(A7)
@@ -10046,7 +10088,7 @@ ChangedToText:
1004610088
1004710089aboutText:
1004810090 DC.B "********************************************************************************"
10049- DC.B " ACTION REPLAY AMIGA V5.0.0 (05 -Apr-2025)",$D
10091+ DC.B " ACTION REPLAY AMIGA V5.0.0 (14 -Apr-2025)",$D
1005010092 DC.B " Developed by REbEL / QUARTEX",$D
1005110093 DC.B " Hardware Engineering by NA103 and GERBIL",$D,$D
1005210094 DC.B " Based upon Action Replay MKIII (Datel Electronics)",$D
@@ -14633,13 +14675,11 @@ LAB_4080A8:
1463314675 BLE.S LAB_4080A8
1463414676
1463514677 JSR disableAllDma
14636- SUBA.L A0,A0
14637- MOVE.W #$2c00 ,D0
14678+ LEA EXT_100.W,a0
14679+ MOVE.W #$2bc0-1 ,D0
1463814680LAB_4080B8:
1463914681 CLR.L (A0)+
1464014682 DBF D0,LAB_4080B8
14641- MOVEM.L (A7),D0-D7/A0-A6
14642- MOVE.L A1,BUS_ERROR.W
1464314683LAB_4080C6:
1464414684 CMP.B #34,kickstartVersion
1464514685 BHI.S LAB_408104
@@ -22095,15 +22135,15 @@ LAB_40D56A:
2209522135.2
2209622136 MOVE.L A1,-(A7)
2209722137 MOVE.L A0,UnpackSourceEnd
22098- MOVE.L #$0000100 ,UnpackDest
22138+ MOVE.L #$0001100 ,UnpackDest
2209922139 JSR UnpackNoFlash
2210022140 MOVE.L (A7)+,A0
22101- LEA EXT_0 .W,A1
22141+ LEA EXT_1000 .W,A1
2210222142LAB_40D5CE:
2210322143 MOVE.L (A0),(A1)+
2210422144 CMPI.L #$fffffffe,(A0)+
2210522145 BNE.S LAB_40D5CE
22106- CLR .L cop1lch+hardware
22146+ MOVE .L #EXT_1000, cop1lch+hardware
2210722147 MOVE.W #$04d2,copjmp1+hardware
2210822148 MOVE.W #$7fff,intreq+hardware
2210922149LAB_40D624:
@@ -22124,9 +22164,9 @@ BootScreenCopper1:
2212422164 DC.L $01a8079A,$01aa086D,$01ac08AB,$01ae097E
2212522165 DC.L $01b009BC,$01b20A8F,$01b40ACD,$01b60BDE
2212622166 DC.L $01b80CEF,$01ba0DFF,$01bc0090,$01be0F00
22127- DC.L $00e00000,$00e20100 ,$00e40000,$00e616e0
22128- DC.L $00e80000,$00ea2cc0 ,$00ec0000,$00ee42a0
22129- DC.L $00f00000,$00f25880
22167+ DC.L $00e00000,$00e21100 ,$00e40000,$00e626e0
22168+ DC.L $00e80000,$00ea3cc0 ,$00ec0000,$00ee52a0
22169+ DC.L $00f00000,$00f26880
2213022170 DC.L $01005200,$fffffffe
2213122171
2213222172BootScreenCopper2:
@@ -22140,9 +22180,9 @@ BootScreenCopper2:
2214022180 DC.L $01A80000,$01AA0000,$01AC0000,$01AE0000
2214122181 DC.L $01B00000,$01B20000,$01B40000,$01B60000
2214222182 DC.L $01B80000,$01BA0000,$01BC0000,$01BE0000
22143- DC.L $00e00000,$00e20100 ,$00e40000,$00e616e0
22144- DC.L $00e80000,$00ea2cc0 ,$00ec0000,$00ee42a0
22145- DC.L $00f00000,$00f25880
22183+ DC.L $00e00000,$00e21100 ,$00e40000,$00e626e0
22184+ DC.L $00e80000,$00ea3cc0 ,$00ec0000,$00ee52a0
22185+ DC.L $00f00000,$00f26880
2214622186 DC.L $01005200,$fffffffe
2214722187
2214822188disableAllDma:
@@ -22256,10 +22296,10 @@ LAB_A1CFB2:
2225622296
2225722297 if arhardware=1
2225822298 MOVE.L #$4a3900bf,(A0)+
22259- MOVE.W #$e001 ,(A0)+
22299+ MOVE.L #$e0014e71 ,(A0)+
2226022300 else
2226122301 MOVE.L #$4e4e4e73,(A0)+
22262- MOVE.W #$4e71 ,(A0)+
22302+ MOVE.L #$4e714e71 ,(A0)+
2226322303 endc
2226422304 DBF D0,LAB_A1CFB2
2226522305
@@ -22274,10 +22314,10 @@ LAB_A1CFB2:
2227422314 endc
2227522315
2227622316 MOVE.L #$00000100,ADR_ERROR(A0)
22277- MOVE.L #$00000106 ,ILLEG_OPC(A0)
22278- MOVE.L #$0000010c ,DIVISION0(A0)
22279- MOVE.L #$00000112 ,LINEA_EMU(A0)
22280- MOVE.L #$00000118 ,LINEF_EMU(A0)
22317+ MOVE.L #$00000108 ,ILLEG_OPC(A0)
22318+ MOVE.L #$00000110 ,DIVISION0(A0)
22319+ MOVE.L #$00000118 ,LINEA_EMU(A0)
22320+ MOVE.L #$00000120 ,LINEF_EMU(A0)
2228122321 ST exceptionsActive
2228222322 LEA ExceptionHandlerInsText(PC),A0
2228322323 JSR PrintText
@@ -22290,30 +22330,40 @@ ExceptionHandlerInsText:
2229022330
2229122331SUB_A1D0A8:
2229222332 if arhardware=1
22293- CMPI.L #$00000124 ,SaveOldPc
22333+ CMPI.L #$00000128 ,SaveOldPc
2229422334 BHI.S LAB_A1D0F0
22335+ CMPI.L #$00000100,SaveOldPc
22336+ BEQ.S LAB_A1D0F2
2229522337 CMPI.L #$00000106,SaveOldPc
2229622338 BEQ.S LAB_A1D0F2
22297- CMPI.L #$0000010c ,SaveOldPc
22339+ CMPI.L #$00000108 ,SaveOldPc
2229822340 BEQ.S LAB_A1D0F8
22299- CMPI.L #$00000112,SaveOldPc
22341+ CMPI.L #$0000010e,SaveOldPc
22342+ BEQ.S LAB_A1D0F8
22343+ CMPI.L #$00000110,SaveOldPc
22344+ BEQ.S LAB_A1D0FE
22345+ CMPI.L #$00000116,SaveOldPc
2230022346 BEQ.S LAB_A1D0FE
2230122347 CMPI.L #$00000118,SaveOldPc
2230222348 BEQ.S LAB_A1D104
2230322349 CMPI.L #$0000011e,SaveOldPc
22350+ BEQ.S LAB_A1D104
22351+ CMPI.L #$00000120,SaveOldPc
22352+ BEQ.S LAB_A1D10A
22353+ CMPI.L #$00000126,SaveOldPc
2230422354 BEQ.S LAB_A1D10A
2230522355 else
22306- CMPI.L #$0000011c ,SaveOldPc
22356+ CMPI.L #$00000128 ,SaveOldPc
2230722357 BHI.S LAB_A1D0F0
2230822358 CMPI.L #$00000102,SaveOldPc
2230922359 BEQ.S LAB_A1D0F2
22310- CMPI.L #$00000108 ,SaveOldPc
22360+ CMPI.L #$0000010a ,SaveOldPc
2231122361 BEQ.S LAB_A1D0F8
22312- CMPI.L #$0000010e ,SaveOldPc
22362+ CMPI.L #$00000112 ,SaveOldPc
2231322363 BEQ.S LAB_A1D0FE
22314- CMPI.L #$00000114,SaveOldPc
22315- BEQ.S LAB_A1D104
2231622364 CMPI.L #$0000011a,SaveOldPc
22365+ BEQ.S LAB_A1D104
22366+ CMPI.L #$00000122,SaveOldPc
2231722367 BEQ.S LAB_A1D10A
2231822368 endc
2231922369LAB_A1D0F0:
@@ -51877,7 +51927,7 @@ checksum:
5187751927 ;DC.L $275fa408 ; v0.8.0
5187851928 ;DC.L $9178fa9e ; v0.9.0
5187951929 ; !
51880- DC.L $628efff9 ; v5.0.0
51930+ DC.L $592ff7f0 ; v5.0.0
5188151931
5188251932arramstart:
5188351933;all of this is used to store chipmem data
0 commit comments