04 September 2022, 10:00 | #1 |
Registered User
Join Date: May 2017
Location: AmigaLand
Posts: 456
|
My Amiga clears memory always
Hi,
Context : Amiga 500 KS1.3 OCS, 1Mb Chip Ram (Boobip ram trap door extension) + 1,5 F.Fast. DF0 real drive, DF1 : Hxc Drive. Oktagon HD 900Mb. I tried to see some code of another program by reseting Amiga and right after loading Asmone (by inserting another disquette) but I didn't find anything, memory was cleaned. And to be sure of it, I loaded severals other program and checked memory using "3rd Day" utility (gfx ripper), but same conclusion, memory seems to be cleaned during reset. I'm puzzled why memory is always cleaned ? I'm pretty sure it shouldn't with all programs. I plugged off my HD but no chance but I let the DF1 plugged in though. Any clue what's going on ? Thanks |
04 September 2022, 11:29 | #2 |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 53
Posts: 4,468
|
It a 'bug' in KS1.3 and 1MB chip machines (it's the same problem that affects reset-proof programs in this very configuration).
If I'm not wrong SetPatch takes care of it. |
04 September 2022, 12:27 | #3 |
Registered User
Join Date: May 2017
Location: AmigaLand
Posts: 456
|
Ok, my Amiga is not bugged then
Thanks Ross. |
04 September 2022, 12:38 | #4 |
Alien Bleed
Join Date: Aug 2022
Location: UK
Posts: 4,118
|
There's a irony for you. What is seen as a bug here is today a minimum security requirement for any remotely serious OS. The last thing you want us to be able to extract data from the memory of a machine after a reboot.
|
04 September 2022, 14:04 | #5 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,038
|
That typically happens when you trash critical part of exec's structures (it has a checksum for validation, and if it's incorrect it will do a "full init" including memory clear, at least that's what KS1.3 does).
Back in the early days my friends and I used to do that to protect our intros (not that they were anything worth protecting :P ). For example, this little instruction placed strategically will do that (a6=exec base): Code:
addq.w #1,36(a6) |
04 September 2022, 15:38 | #6 | |
Registered User
Join Date: Feb 2017
Location: Denmark
Posts: 1,098
|
Quote:
Pretty advanced anti-debugging technique The bug ross mentioned is part of the execbase validation logic. It considers less than 256K or more than 512K chipmem to be invalid. Code:
FC0196 move.l $3E(A6),A3 Get end address of chip memory. FC019A cmp.l #$080000,A3 Greater than 512K? FC01A0 bhi.s FC01CE If so, it must be invalid. FC01A2 cmp.l #$040000,A3 Less than 256K? FC01A8 bcs.s FC01CE If so, it must be invalid. From the KS1.2 exec disassembly but the exact same code is present in 1.3 (though it was fixed for the one included with the A3000). |
|
05 September 2022, 11:36 | #7 |
Registered User
Join Date: May 2017
Location: AmigaLand
Posts: 456
|
I read your answers and I feel like I know very little (or almost nothing) to system coding.
Is there a book to learn Amiga 500 system programming (asm preferably) for dummy you could advice ? |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Setting a500+ trapdoor 1MB memory expansionas the default memory (no motherboard RAM) | kipper2k | Hardware mods | 4 | 13 August 2022 18:15 |
Memory watch point on blitter writing to memory? | mcgeezer | support.WinUAE | 12 | 26 June 2019 22:12 |
WinUAE 3.2.1. memory dump for fake fast memory areas broken | StingRay | support.WinUAE | 1 | 14 December 2015 20:39 |
Blizzard Turbo Memory - SMD memory chips doesn't work | sanjyuubi | Hardware mods | 5 | 26 May 2010 15:40 |
uae-configuration sound_volume clears buffer | smoorke | support.WinUAE | 3 | 17 May 2008 17:54 |
|
|