0 Members and 2 Guests are viewing this topic.
Does that mean that the ASIC will allow execution on all pages below $180, in other words all of them ?
Out of curiosity, what is your goal with unlocking the execution? Are you just trying to to it for the sake of doing it or do you have some specific use case in mind?
Having some vital boot|system pages becoming non-executable was something i was considering, which could have happened easily with crappy code.Like you said, port $24 is probably initialised if things go south, but when you're not sure of something in asm, paranoia is total awareness.And an old chinese coder used to say "Never overestimate TI.".EDIT : And even if such port $24 "repair" code exists, it's useless if it's located on a non-executable page itself. #CanYouSmellTheBrick?
ROM:41B5 loc_41B5: ; CODE XREF: ROM:41ACjROM:41B5 pop afROM:41B6 ld a, 2ROM:41B8 out (2Dh), aROM:41BA call setupLinkHandlerROM:41BD ld a, 17hROM:41BF out (29h), aROM:41C1 ld a, 27h ; '''ROM:41C3 out (2Ah), aROM:41C5 ld a, 2Fh ; '/'ROM:41C7 out (2Bh), aROM:41C9 ld a, 3Bh ; ';'ROM:41CB out (2Ch), aROM:41CD ld a, 45h ; 'E'ROM:41CF out (2Eh), aROM:41D1 ld a, 4Bh ; 'K'ROM:41D3 out (2Fh), aROM:41D5 ld a, 0ROM:41D7 nopROM:41D8 nopROM:41D9 im 1ROM:41DB diROM:41DC out (21h), aROM:41DE diROM:41DF ld a, 8ROM:41E1 nopROM:41E2 nopROM:41E3 im 1ROM:41E5 diROM:41E6 out (22h), aROM:41E8 diROM:41E9 ld a, 29h ; ')'ROM:41EB nopROM:41EC nopROM:41ED im 1ROM:41EF diROM:41F0 out (23h), aROM:41F2 diROM:41F3 ld a, 10hROM:41F5 nopROM:41F6 nopROM:41F7 im 1ROM:41F9 diROM:41FA out (25h), aROM:41FC diROM:41FD ld a, 20h ; ' 'ROM:41FF nopROM:4200 nopROM:4201 im 1ROM:4203 diROM:4204 out (26h), aROM:4206 diROM:4207 xor aROM:4208 out (0Eh), aROM:420A out (0Fh), aROM:420C out (5), aROM:420E ld a, 3Fh ; '?'ROM:4210 out (6), aROM:4212 ld a, 0F0h ; '='ROM:4214 out (39h), aROM:4216 ld a, 20h ; ' 'ROM:4218 out (4Ah), aROM:421A push afROM:421B xor aROM:421C nopROM:421D nopROM:421E im 1ROM:4220 diROM:4221 out (14h), aROM:4223 diROM:4224 or aROM:4225 jp nz, unk_0ROM:4228 pop afROM:4229 ld a, 80h ; 'Ç'ROM:422B out (7), aROM:422D call bootCSCScanROM:4230 cp 38h ; '8'ROM:4232 jr z, loc_4279ROM:4234 cp 20h ; ' 'ROM:4236 jr z, loc_4270ROM:4238 ld a, (byte_38)ROM:423B cp 0FFhROM:423D jr z, loc_424BROM:423F ld hl, (word_56)ROM:4242 ld bc, 0A55AhROM:4245 or aROM:4246 sbc hl, bcROM:4248 jp z, unk_53ROM:424B ; START OF FUNCTION CHUNK FOR sub_461AROM:424BROM:424B loc_424B: ; CODE XREF: ROM:423DjROM:424B ; sub_461A-7Aj ...ROM:424B ld sp, 0FFC5hROM:424E ld a, 6ROM:4250 out (4), aROM:4252 call initCalcROM:4255 xor aROM:4256 out (20h), a
But, onto, "what happens to port $24?". In some rather sketchy experiments where I did overwrite the boot code, I mapped out the starting values of all the ports. It turns out that when the calculator restarts (be it a battery pull or internal kill signal), all of the ports get reset to default values.